日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

一个判断射线和三角形相交的函数

發(fā)布時(shí)間:2025/3/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个判断射线和三角形相交的函数 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Code
?1?//-----------------------------------------------
?2?//-----------檢測(cè)三角形和射線(xiàn)的相交性---------
?3?bool?CDirectXApp::Intersect(const?D3DXVECTOR3&?v0,?const?D3DXVECTOR3&?v1,?const?D3DXVECTOR3&?v2,
?4????????????????const?D3DXVECTOR3&?orgin,?const?D3DXVECTOR3&?vec,?float&?u,?float&?v,?float&?t)
?5?{
?6?????//判斷是否為三角形并且方向向量
?7?????assert(vec?!=?D3DXVECTOR3(0,0,0)?&&
?8?????????v0??!=?v1?&&?v1?!=?v2?&&?v0?!=?v2);
?9?????D3DXVECTOR3?m?=?v0?-?v2;
10?????D3DXVECTOR3?n?=?v1?-?v2;
11?????D3DXVECTOR3?negativeVec??=?-vec;
12?????D3DXVECTOR3?tempVec;
13?????D3DXVec3Cross(&tempVec,?&n,?&negativeVec);
14?????//det?為克萊姆法則求未知數(shù)的分母
15?????float?det?=?D3DXVec3Dot(&tempVec,?&m);
16?
17?????if?(det?<?1e-6f)
18?????{
19?????????return?false;
20?????}
21?
22?????D3DXVECTOR3?VtoOrigin?=?orgin?-?v2;
23?????float?uB?=?D3DXVec3Dot(&tempVec,?&VtoOrigin);
24?????u?=?uB?/?det;
25?????if?(u<0?||?u>1?)
26?????{
27?????????return?false;
28?????}
29?
30?????D3DXVec3Cross(&tempVec,?&VtoOrigin,?&negativeVec);
31?????float?vB?=?D3DXVec3Dot(&m,?&tempVec);
32?????v?=?vB?/?det;
33?????if?(v<0?||?u+v>1)
34?????{
35?????????return?false;
36?????}
37?
38?????D3DXVec3Cross(&tempVec,?&n,?&VtoOrigin);
39?????float?tB?=?D3DXVec3Dot(&m,?&tempVec);
40?????t?=?tB?/?det;
41?????return?true;

轉(zhuǎn)載于:https://www.cnblogs.com/ttthink/archive/2009/09/23/1572936.html

總結(jié)

以上是生活随笔為你收集整理的一个判断射线和三角形相交的函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。