[問題] 判斷空間中的一點是否在三角錐裡

作者: 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