6

有沒有一種方法來幾何計算線和任意圖形路徑的交點?我知道所有的線條和曲線在路徑中的位置,如果有幫助,我使用HTML5 canvas元素。基本上,我可以訪問所有的畫布繪圖命令及其參數。例如,如果使用lineTo調用API,則使用moveTo,然後使用弧來獲取所有這些信息。每個對API的調用都存儲在一個數組中。我有路徑定義,我只想找出線條與路徑相交的地方。以下圖片顯示了我需要查找的幾個要點示例。如何計算直線和任意形狀的交點?

alt text http://cl.ly/3228b0e7ea32b172e960/content

感謝您的幫助!再次,如果可能的話,我寧願做幾何而不是像素。

回答

0

不知道如何定義圖形路徑,不可能用具體的算法來回答你的問題。對於直線段,有一個解決方案this book on algorithms

+0

基本上,我可以訪問所有的畫布繪圖命令及其參數。例如,如果使用lineTo調用API,則使用moveTo,然後使用弧來獲取所有這些信息。每個對API的調用都存儲在一個數組中。我有路徑定義,我只想找出線條與路徑相交的地方。 – devongovett 2010-06-19 23:31:29

+0

@devongovett:我的建議是將這些信息添加到問題中。 – 2010-06-20 00:41:19

+0

所以你的問題是找到由javascript畫布繪製命令和一條直線定義的線之間的交集。 – 2010-06-20 00:56:06

0

如果你有一切方程式,那麼你可以做(​​理論上)。實際上,這並不容易(特別是在一般情況下)。 This discussion對相交線和貝塞爾曲線有一些很好的建議。

0

你想交叉一條直線和一個「樣條」x(t),y(t),對於x(t)和y(t),它應該至多是4次多項式。你編寫了求解方程,但是你需要知道所有的參數。如果解決方案超出範圍(線段和樣條線段有開始和結束) - 丟棄它。相關問:

The intersection point between a spline and a line