回答
檢查@Josiah's link,但這個想法基本上是這樣的:
「掃」一條線空間(可能是2D),並採取了一些動作,當你遇到一個點,頂點,或其他物體。你可以用它來
附近建立一個點雲的邊界形狀
收縮包裝的積分獲得一個凸多邊形,
產生Voronoi圖(見上面的維基鏈接例子)
進行原始波模擬(掃描線或波陣面遇到的點會引起波形擾動)
可見性判定:在起始掃描線上選取觀察者位置(或甚至多個觀察者位置)。每次遇到物體時,從觀察者位置通過遇到物體的外邊界生成一個圓錐體或其他體積,表示遇到點後面的區域。
2D/3D排序,儘管這決不會是最有效的方式進行排序,
可能的事情,我都沒有想到的整體轉換。
更新
對於多邊形交集,你最好使用Separating Axis Test。 (針對Java示例的See this link)。
另外,see this link用於較少混淆的算法概述。
我需要這個來檢查屏幕上的兩個多邊形(旋轉的矩形)是否相交。當我開始研究一個簡單的2D遊戲時,我不知道這個簡單的東西需要多少數學和幾何學:\ – user3150201
@ user3150201啊 - 試試SAT。 (看我的更新) –
@ user3150201此外,數學隨着時間變得更容易。我通常會寫一次,然後把它扔到一個庫中(所以你可以打電話,比如說'if(rectangle1.intesects(rectangle2)){....}'。我正在爲遊戲編程學習數學和物理今年春天 - 這裏有很多東西,但這都是學習曲線(也就是說,它需要一段時間才能認識到它不像第一次看起來那麼複雜)。你不必是數學家,只是耐心。 –
- 1. ImageCaptureService.app它是什麼?
- 2. 什麼是掃名單
- 3. SQL:什麼是聚簇索引掃描,爲什麼/何時使用它?
- 4. 什麼是MIME?它到底是什麼?
- 5. java threadlocal singleton - 它是什麼?
- 6. MethodHandle - 它是什麼?
- 7. pthread_cleanup_pop_restore - 它是什麼?
- 8. PTHREAD_MUTEX_INITIALIZER,它是什麼?
- 9. JavaObjectModel。它是什麼?
- 10. KeyChain - 它是什麼?
- 11. 什麼是在線
- 12. 什麼是線程?
- 13. 什麼是線程?
- 14. 這個線程環境結構是做什麼的?它的目的是什麼?
- 15. 什麼是VGA編程中的「掃描」?
- 16. 什麼是「掃描工作副本」
- 17. 什麼是MongoDB中的集合掃描?
- 18. 什麼是掃描:Java中的塊?
- 19. JavaVM.framework。它是什麼?我怎麼用它?
- 20. Mandrill應用程序 - 它是什麼,它的API key是什麼
- 21. 什麼是多線程程序,它是如何工作的?
- 22. 給定一個函數,它是否是線性的,爲什麼?
- 23. 它是什麼意思「這是一個'在線'格式結構。」?
- 24. 它是多線程時的進程狀態是什麼?
- 25. 爲什麼JavaScript轉換它,它是什麼將它轉換爲?
- 26. 什麼是PNO的區別掃描和WLAN預設掃描?
- 27. 掃描線是否逃跑?
- 28. 什麼是python中的類,它做什麼,它爲什麼需要它?
- 29. 爲什麼NSString'忘記'它是什麼?
http://en.wikipedia.org/wiki/Sweep_line_algorithm – Josiah