我們做了一個函式回傳一個點在三角形內。現在我們想走得更遠。我們要檢查一個點是否在四面體金字塔的體積中,僅用坐標。例如,我們金字塔的坐標是[(0, 0, 0), (3, 1, 4), (1, 4, 2), (6, 3, 5)]。而我們的目標點是(1, 1, 0)。它必須回傳false。但是如果我們的觀點是Zis 1,它必須回傳true。
uj5u.com熱心網友回復:
根據: 黑爪
檢查點是否在三角形中的常用方法是找到將點連接到三角形三個頂點中的每一個的向量,并對這些向量之間的角度求和。如果角之和為 2*pi,則該點在三角形內,否則不在三角形內。它有效,但速度非常慢。
uj5u.com熱心網友回復:
一種可能的方法:使用下一個行列式(我省略 1/6 因子)計算源四面體和由點 P 和小面形成的四個四面體的帶符號體積。
對于內點,它們都應該具有相同的符號
for source
| x1 x2 x3 x4 |
V = | y1 y2 y3 y4 |
| z1 z2 z3 z4 |
| 1 1 1 1 |
| px x2 x3 x4 |
V1 = | py y2 y3 y4 |
| pz z2 z3 z4 |
| 1 1 1 1 |
| x1 px x3 x4 |
V2 = | y1 py y3 y4 |
| z1 pz z3 z4 |
| 1 1 1 1 |
與 V3、V4 類似,使用對應列中的 P 坐標
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/350526.html
上一篇:樹資料結構__str__方法
下一篇:創建基本的簡單樹
