Re: [其他] 判斷空間中的一點是否在三角錐裡
※ 引述《chu1216 (chu)》之銘言:
: 各位好,
: P,A,B,C,D 這五點3D座標已知.
: 假設P點是(x=0.1, y=0.1, z=0.1)
: 並假設,ABCD四點座標如下
: A=(x=0, y=0.5, z=0)
: B=(x=0.5, y=0, z=0)
: C=(x=0, y=0, z=0.5)
: D=(x=0, y=0.5, z=0.5)
: ABCD是一個3D的三角錐(四面體),
: 請問要怎麼判斷P點有沒有落在這三角錐裡面
: 感謝各位.
提供我的一個看法,不過沒有針對你這三角錐,是對一般四面體應該都行
下面寫兩點XY都表示由X到Y的相對位置向量,XY = 行向量(y1-x1, y2-x2, y3-x3)
如果有一點Q在C、D線段上,則有 BQ = s*BC + t*BD,s與t是參數,且s+t=1,0<s,t<1
當一點R在三角形BCD內,則有 BR = m*BC + n*BD,m與n是參數,且m+n<1,0<m,n<1
假設P是四面體內一點,且R點為AP延伸至三角形BCD上的點,則 AP = k*AR,0<k<1
AP = k*AR = k*( AB + BR )
= k*( AB + m*BC + n*BD )
= k*AB + km*BC + kn*BD
= k*AB + km*(AC-AB) + kn*(AD-AB)
= k(1-m-n)*AB + km*AC + kn*AD
= u*AB + v*AC + w*AD
其中u=k(1-m-n),v=km,w=kn,0<u,v,w<1 且 u+v+w<1
利用這些條件來判斷P是否在內部
判斷法是:
先算AP、AB、AC、AD,可以找到滿足下式的參數u、v、w
AP = u*AB + v*AC + w*AD
這裡可以看成三元一次方程組,可以用反矩陣求解u、v、w
u
v = [AB AC AD]^(-1) [AP]
w
當 u,v,w,u+v+w 均為 小於1的正數 時,P點在內部
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.91.172 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Math/M.1656758913.A.465.html
※ 編輯: variation (140.116.91.172 臺灣), 07/02/2022 19:28:22
推
07/10 02:05, , 1F
07/10 02:05, 1F