5
A
回答
2
假設你有軸對齊的邊界框,你可以通過它們的x座標對點列表進行排序,通過二分搜索找到列表點上的位置或邊界框外的位置,可能一次丟棄大量的點,重複y座標像以前一樣用剩下的點。您可以執行多邊形三角測量以加快邊界框內的測試。
當平面的面積遠大於多邊形的面積並且多邊形相當緊湊時(即不會很長且很薄,這可能會導致很多誤報),性能會更好。
1
我可能會使用Quadtree來快速粗略測試「我在多邊形內部還是外部」,以達到您在生成四叉樹時確定的某個精度級別。
每次查找都是O(log n),這將會盡可能快地得到。對於標記爲「包含邊緣」的四叉樹單元格內的點,則必須執行傳統的點中多邊形測試。
3
這裏有一個高效的matplotlib函數:matplotlib.nxutils.points_inside_poly()。算法記錄在this page上。
相關問題
- 1. JavaFX多邊形分享積分
- 2. 多邊形邊上的點
- 3. 面積和多邊形的質心
- 4. 多邊形的面積 - 順時針
- 5. 填充多邊形的面積與Python
- 6. 點在多邊形
- 7. 在每個多邊形中查找一組多邊形的最大點R
- 8. 使用點postgis分割多邊形
- 9. 由頂點數組多邊形獲取多邊形的邊
- 10. 呈現大量積分
- 11. 用於多個多邊形的點多邊形算法
- 12. 如何計算多邊形的點數爲Lat長時,MySQL數據庫中的多邊形面積?
- 13. 當多邊形的點數爲Lat Long時,計算多邊形的面積:哪個函數更準確?
- 14. 帶有多邊形孔的多邊形區域內的點
- 15. 如何找出多邊形中邊,面,頂點的數量
- 16. 將多邊形拆分爲小多邊形,每個包含1個點
- 17. 在較小的多邊形中細分多邊形的算法
- 18. 匹配點在多邊形列表中的多邊形
- 19. 計算多邊形的最小面積矩形
- 20. 使用LINQ的多邊形中的點或多邊形上的點
- 21. 將多邊形分解爲較小的多邊形
- 22. Qt將多邊形分解爲較小的多邊形
- 23. 點在多邊形rgeo
- 24. OpenGL多邊形點刻
- 25. 點公式爲多邊形
- 26. 在動態多邊形改變多邊形頂點在cocos2d
- 27. 從分表用多邊形
- 28. 使用OpenGL渲染具有大量頂點的填充複雜多邊形
- 29. 將凹多邊形分解爲凸多邊形
- 30. 在一些小凸多邊形中細分一般多邊形
應該值得將多邊形預處理成(可能更長的)凸多邊形列表。一方面,它會使你的邊界框更有效。 – 2011-05-13 23:01:09
如果您可以定位生成的凸多邊形的邊緣(例如全部爲順時針),則可以使用更快的方法(方法3 [此處](http://paulbourke.net/geometry/insidepoly/))。 – 9000 2011-05-13 23:34:03