[问题] 判断空间中的一点是否在三角锥里

楼主: chu1216 (chu)   2022-07-01 22:30:27
各位好,
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的三角锥(四面体),
请问要怎么用R判断P点有没有落在这三角锥里面
感谢各位.
作者: Gjerry   2022-07-01 23:18:00
检查该点与5个构成三角柱的相对位置
作者: xiangying (xiangying)   2022-07-02 00:19:00
用3个between?
作者: lycantrope (阿宽)   2022-07-02 09:23:00
ABC,ABD,ACD,BCD 4个平面方程式代入算正负
作者: yhliu (老怪物)   2022-07-02 10:37:00
觉得楼上的方法不错, 可以用在平面上的三角形, 空间中的三角锥,及更高维空间类似问题, 甚至可用在凸多边形, 多面体.
作者: andrew43 (讨厌有好心推文后删文者)   2022-07-02 10:43:00
直觉3个point.in.polygon()三个的投影面各做一次
作者: wayturn (岳)   2022-07-02 22:31:00
每3点求1平面,得4平面,再交集4个不等式
作者: yhliu (老怪物)   2022-07-03 00:19:00
把 4 个点(A~D) 的座标排成阵列再加一行 1 构成 4x4 矩阵,计算其行列式. 再逐一将4个点之一以欲测点替代, 如正负号全未发生变化, 即表示在四面体内; 有任一发生正转负或负转正,即是在四面体之外. 有一行列式变 0, 即待测点在对应3点决定的平面上.
楼主: chu1216 (chu)   2022-07-03 14:35:00
请问楼上yhliu大 算座标的行列式是根据什么理论呢?谢谢!
作者: lycantrope (阿宽)   2022-07-03 22:27:00
复习一下高中数学向量跟平面吧..

Links booklink

Contact Us: admin [ a t ] ucptt.com