作者variation ( )
标题Re: [其他] 判断空间中的一点是否在三角锥里
时间Sat Jul 2 18:48:31 2022
※ 引述《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://webptt.com/cn.aspx?n=bbs/Math/M.1656758913.A.465.html
※ 编辑: variation (140.116.91.172 台湾), 07/02/2022 19:28:22
1F:推 chu1216 : 非常谢谢你提供的看法! 07/10 02:05