2011-04-13 94 views
1

給定點a(x1,y1)和點c(x3,y3),我們可以計算斜率m。假設我們有距離d,我試圖弄清楚如何找到一個點b(x2,y2),它與c的方向距離x1,y1的距離有點困難。從點到另一點的距離

有誰知道如何計算這個?我想過使用中點功能,但它並不在那裏。

幫助?

+0

與編程無關。您可能在http://math.stackexchange.com/上運氣更好。 – 2011-04-13 02:52:30

+0

@Cody,我發現數學團體相當精英主義。他們很可能會嘲笑這個基本的問題,而更喜歡那些絕大多數凡人甚至無法讀懂的問題,更不用說理解了,比如'結構常量和克萊布斯 - 喬丹係數':-)因爲這是一種常見的編程在圖形和/或遊戲方面的問題,我認爲這可能是好的。畢竟它要求算法。 – paxdiablo 2011-04-13 03:12:08

+0

感謝paxdiablo - 這是一款遊戲,所以我認爲這是一個常見的編程問題。 – j03m 2011-04-13 03:36:30

回答

3

您可以制定出距離ac之間有:

 __________________________________ 
df = /(x3-x1)*(x3-x1) + (y3-y1)*(y3-y1) 
    \/ 

它使用方法標準「的平方和的根」。

然後,如果你想實際部分距離爲dp,點可以在(x2,y2)發現:

x2 = x1 + dp/df * (x3-x1) 
y2 = y1 + dp/df * (y3-y1) 

這簡直就是移動的正確比例dp/df在兩個維度。

+0

非常感謝 – j03m 2011-04-14 01:16:17

1

可以通過以下從A的方向B:

D = B - A 

然後,可以歸一化的方向(這意味着它是幅度1,或長度爲1):

N = D/D.Length 

其中

D.Length = sqrt(D.X * D.X + D.Y * D.Y) 

要找到由A和B給出的線上的點,X單元遠離於B的方向,你可以使用以下內容:

Final = A + N * X 
相關問題