2014-01-19 93 views
0

我需要計算一個平面內射線和線段交點的事實以及射線起點到交點的距離,但是我很不瞭解計算幾何,所以......怎麼做?如何計算矢量形式的光線段相交?

+0

這個問題似乎是題外話,因爲它是關於幾何形狀,而不是編程通過。 –

回答

0

段與端點A和B(所有向量)具有等式:

P(x) = A * x + B * (1 - x) 

其中0 < = X < = 1

射線與原籍R和定向(單位)向量U具有等式:

Q(y) = R + U * y 

其中y> = 0

你只需要解方程:

P(x) = Q(y) 

也就是說,找到參數x和y(如果存在的話),滿足這個(矢量)方程。你將有兩個標量方程和兩個變量來計算。您可以很容易地解決這個線性系統,然後檢查條件0 < = x < = 1且y> = 0。如果這兩個條件都滿足,您就得到了一個解決方案,否則就沒有交集。 y值會給你從射線原點到交點的距離。

你也需要考慮很多退化情況,例如 - 射線通過在段終點等