2014-01-22 63 views
1

如果您有一組的「常規」三角形連接如這樣:你如何知道你是否在一組三角形內?

geodesic mesh sphere

...你知道頂點/每個三角形的法線,什麼是測試是否一個有效的方法另一點是「內部」或「包含在」一組三角形內?

謝謝!

+1

這是2D還是3D的問題? –

+0

3D,@ YvesDaoust:D – HotDogCannon

+1

您是否總是具有凸形狀(如本例中)還是可以是任意的? –

回答

5

從給定的點開始直線投射。測試線與每個三角形的交點並計算在該點的同一側上找到的所有交點。如果這個數字很奇怪,你就在裏面。

爲了簡化計算,請使用x=x0y=y0作爲線條,並投影XY平面上的所有內容。使用How to determine if a point is in a 2D triangle?,最後檢查交點的z值。

+1

這是蠻力的方法。對於光線投射而言,更有效的方法(對於大網格,並且如果有足夠的位置查詢來分攤初始成本)將構建分層空間數據結構(BSP樹,kd樹,八叉樹)以在查詢期間剔除大量三角形,減少光線/三角形相交測試的總數。由於這裏光線方向實際上是固定的,所以xy平面中的更簡單的2D空間數據結構甚至可以用來代替。 – user3146587

相關問題