問(wèn)題背景:
很早就覺(jué)得數(shù)學(xué)很重要,但斌沒(méi)有靜下心來(lái)好好看~ 最近重寫(xiě)都D3D框架的結(jié)構(gòu),打算從基礎(chǔ)類一個(gè)個(gè)寫(xiě)起。。
今天寫(xiě)到射線的相交,在射線與平面相交的判斷上,由于射線的的單方向性,所以可能存在射線的反向延長(zhǎng)線和平
面相交,但是正真的射線沒(méi) 有 和平面相交,所以設(shè):
平面的單位法向量:N,;
射線的起始點(diǎn):Origin
射線的方向:Dir
如果Dir,N的點(diǎn)積為正 且Origin在平面的背面,或Origin在平面的正面,且Dir,N的點(diǎn)積為負(fù),則他們相交
其他情況則不想交
但關(guān)鍵是Origin在平面的哪一面該怎么算呢?下面來(lái)小證一下
證明:
N,Origin,Dir均為矢量,其他為標(biāo)量
平面方程為 N(x, y, z) = D;
射線方程為 P(t) = Origin + Dir*t;
N為平面的單位法向量,
求N與Origin的點(diǎn)積
N•Origin = |N| * |Origin|cos
F 因?yàn)镹為單位向量 則求出來(lái)的值為Origin向量在N上的投影且有方向
(這個(gè)有向長(zhǎng)度相于當(dāng)該平面經(jīng)過(guò)原點(diǎn)時(shí)的有向長(zhǎng)度,既D為0時(shí)),(D的幾何意義是平面到原點(diǎn)的有向距離,
既D為負(fù)則 原點(diǎn)在平面背面,反之在反面)
所以N•Origin + D為最后Origin在正真的有偏移的N上的投影的有向長(zhǎng)度,為負(fù)則在背
面,為正則在正面
貌似講的不怎么清楚 -_- ~~~
posted on 2009-02-25 21:01
AstaTus 閱讀(549)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
3D Math