我一直在試圖解決這個問題,並且我發現了一個給出了零除法錯誤的可能性的方程。不是最好的東西:找到兩個矢量方程的交點
v1 = (a,b)
v2 = (c,d)
d1 = (e,f)
d2 = (h,i)
l1: v1 + λd1
l2: v2 + µd2
Equation to find vector intersection of l1 and l2 programatically by re-arranging for lambda.
(a,b) + λ(e,f) = (c,d) + µ(h,i)
a + λe = c + µh
b +λf = d + µi
µh = a + λe - c
µi = b +λf - d
µ = (a + λe - c)/h
µ = (b +λf - d)/i
(a + λe - c)/h = (b +λf - d)/i
a/h + λe/h - c/h = b/i +λf/i - d/i
λe/h - λf/i = (b/i - d/i) - (a/h - c/h)
λ(e/h - f/i) = (b - d)/i - (a - c)/h
λ = ((b - d)/i - (a - c)/h)/(e/h - f/i)
Intersection vector = (a + λe,b + λf)
不知道它在某些情況下是否會起作用。我沒有測試過它。
我需要知道如何在值a-i中執行此操作。
謝謝。
@aeflash如果d1和d2幾乎是平行的,但v1和v2也是「幾乎」平行的,那麼可以找到相交點。這是一個非常平坦的旋臂的情況。 – 2010-06-18 04:29:30
謝謝你的回答。 線總是垂直的,但方向矢量仍然可以有0。我可以爲其中0的情況制定其他方程式,但如果知道人們是否使用編程方式的簡單方法,那將是很好的。 – 2010-06-18 15:03:50
也許他們垂直的事實可以簡化事情? – 2010-06-18 15:05:17