尋找兩條線之間的交點的最有效的算法是什麼?找到兩條線相交的高效,正確和優化的算法
您給出四點A,B,C,D 查找AB和CD之間的交叉點。 儘可能地優化算法。
有兩種方法用於此,一種是採用點積和另一個是使用斜率截距形式線。哪一個更好。
這聽起來重複的問題,但我想問的是哪種方法更好,最有效的更好的複雜性。
尋找兩條線之間的交點的最有效的算法是什麼?找到兩條線相交的高效,正確和優化的算法
您給出四點A,B,C,D 查找AB和CD之間的交叉點。 儘可能地優化算法。
有兩種方法用於此,一種是採用點積和另一個是使用斜率截距形式線。哪一個更好。
這聽起來重複的問題,但我想問的是哪種方法更好,最有效的更好的複雜性。
這不需要任何算法,只需要solution of two intersecting lines。這是一個基本的數學問題,而不是計算問題(這只是代數操作)。
這就是說,這裏的a discussion你應該找到有幫助的。
對於這些類型的問題,我更願意伯克先生的網站。這是他上線intersectoin文章:
Intersection point of two lines
鑑於多麼微不足道,這是,這是很艱難的優化。
我猜你能做的最好的就是確保一切都在CPU緩存中,這樣你可以在全速運行的數學歡聲笑語。你可能會試圖預先計算出一些差異(P2-P1),但在這個世界上很難說內存查找是否比只執行減法更快。 CPU可以在1個操作中進行減法和乘法操作,而內存查找(如果它們錯過了緩存)可能要花費幾個數量級的時間。
更新後的鏈接:http://paulbourke.net/geometry/pointlineplane/ – jlstrecker 2014-04-04 15:50:19
所有的數學運算,不管多麼簡單,都是算法。 – 2009-10-23 17:26:25
@BipedalShark:問題是,這是一個計算論壇,而不是數學論壇。例如,談論這種「算法」的複雜性是沒有意義的。見例如關於元的討論:http://meta.stackexchange.com/questions/26339/are-algorithm-questions-allowed-on-so – 2009-10-23 17:31:27
鏈接討論中的第一個小標題顯示了我意識到的最有效的方法從四點到這兩條線的交點。關於這個問題的大多數其他數學討論都假設你以斜截式('y = mx + b')的線開始,但在現實世界的應用中,我發現你更有可能從點開始。 – 2009-10-23 18:00:28