1
A
回答
5
從給定的點開始直線投射。測試線與每個三角形的交點並計算在該點的同一側上找到的所有交點。如果這個數字很奇怪,你就在裏面。
爲了簡化計算,請使用x=x0
,y=y0
作爲線條,並投影XY
平面上的所有內容。使用How to determine if a point is in a 2D triangle?,最後檢查交點的z
值。
+1
這是蠻力的方法。對於光線投射而言,更有效的方法(對於大網格,並且如果有足夠的位置查詢來分攤初始成本)將構建分層空間數據結構(BSP樹,kd樹,八叉樹)以在查詢期間剔除大量三角形,減少光線/三角形相交測試的總數。由於這裏光線方向實際上是固定的,所以xy平面中的更簡單的2D空間數據結構甚至可以用來代替。 – user3146587
相關問題
- 1. 你如何知道CA是否可信?
- 2. 你如何知道你的網站是否已成爲主題?
- 3. 如何知道陣列中存在三角形三元組?
- 4. 你如何在Java中與星星做一個倒三角形?
- 5. 你知道netstream.appendBytes()是否有問題嗎?
- 6. Google如何知道你是僞裝的?
- 7. 你怎麼知道你的WPF控件是否被渲染?
- 8. java如何知道你是否正在運行javaw.exe與java.exe
- 9. 如何找到一個點是否在三角形內?
- 10. 如何知道你的單元測試是否是「合適的」?
- 11. SSIS Gurus:你如何知道你的所有數據是否到達目的地
- 12. 如何找到一組座標是否在二維三角形內?
- 13. 你怎麼知道一個函數是否返回一個值?
- 14. 如何檢測你是否在你的手指內移動ImageView
- 15. 你如何知道jQuery中是否有某些操作?
- 16. 如何知道你是否有Python中的非連續列表?
- 17. 你如何知道你可以在api中做什麼?
- 18. 知道你在拖動時
- 19. 你是否一直都知道你保存在Mongodb文檔數組中的索引?
- 20. 如果你知道你有2個數據庫項目,每頁5個。如果用戶請求一個頁面,你怎麼知道該頁面是否存在?
- 21. 你將如何產生Sierpinski三角形的C(遞歸)
- 22. 你怎麼知道一個NSObject是否有某個屬性?
- 23. 測試一條線是否在三角形內有一個點
- 24. 尋找一個點是否在一個三角形內
- 25. 你知道如何閱讀量角器錯誤嗎?
- 26. exec'ed shell如何知道你的cwd?
- 27. 你知道如何解析這個嗎?
- 28. 你知道如何使用INotifyDataErrorInfo
- 29. 在Drupal 7中,如果你關注一個組,如何在組更新他們的內容時通知你?
- 30. 你如何運行你不知道參數開始的程序?
這是2D還是3D的問題? –
3D,@ YvesDaoust:D – HotDogCannon
您是否總是具有凸形狀(如本例中)還是可以是任意的? –