2015-01-06 88 views
0

嗨,我正在寫一個小腳本來分析點數據 - 一切都快完成了,但我堅持找到兩個點之間的兩條直線(邊)之間的交點。下圖說明了這個問題更好:如何在邊緣找到交點

enter image description here

編輯:DB &之間的唯一的二維問題&距離應等於

+0

滿足這個條件的點的數目是inifinit。你必須選擇一個點的長度 –

+1

沒有進一步的限制,有很多方法可以獲得固定距離DE的D和E.你想成爲BD = BE?或者也許BA/BD = BC/BE? –

+0

@MOehm其DB和BE之間唯一的二維問題和距離應該等於 – user3688059

回答

2

你說你想要的距離DE在給定的L。你點{D}{E}

{D} = {B} + x * {a} 
{E} = {B} + x * {c} 

其中{a}是歸一化矢量BA{c}是歸一化矢量BC。 (。這些載體必須是相同的長度,以使得相同的因子x可以同時用於規範化是執行本最簡單的方法)

現在你有方程:

L = |{D} - {E}| 
    = |x*{a} - x*{c}| 

破碎下到矢量分量:

L = sqrt((x*ax - x*cx)² + (x*ay - x*cy)²) 
    = x * sqrt((ax - cx)² + (ay - cy)²) 

求解x

x = L/sqrt((ax - cx)² + (ay - cy)²) 

並在上面的第一個公式中使用找到的x

+0

終於有時間來實現這一點 - 好吧,它的工作原理 - 非常感謝,但D E點不是在AB BC段上創建的。我做錯了什麼,或者他們可以像那樣創建? – user3688059

+0

你的意思是說要點在通過A和B的線上,而不是在線段中?是的,當分段不是很長或者它們之間的角度很尖銳時可能會發生這種情況。當'x> | AB |'時,這點在'AB'之外。 –