2011-11-28 68 views
2

可能重複:
Extend a line segment a specific distance算法延伸的線段

好由於某種原因,我畫這個空白。我知道線段的兩個點,並且我想將該線段延伸已知的距離。所以,我知道擴展的起點,我知道擴展的斜率,我知道擴展的長度......我如何找到擴展的結束座標?

我正在做這個檯球遊戲,我想弄清楚cueball在什麼時候擊中目標球以便將其沉入物體口袋。我已經是線段從口袋到對象球的中間。線段延伸的終點將是我必須發送球杆以便以正確的角度擊球並將球擊下的座標。我希望這是有道理的。順便說一下,我使用的是Java。謝謝你的幫助。

回答

4
lengthAB = sqrt((a.x - b.x)^2 + (a.y - b.y)^2) 
c.x = b.x + (b.x - a.x)/lengthAB * length; 
c.y = b.y + (b.y - a.y)/lengthAB * length; 

*拉和鞏固從這樣的回答:Extend a line segment a specific distance

+0

哇,我完全沒有看到這個問題,當我搜索。感謝你!我會試試看,當我沒有這麼累.. – vince88

+0

沒問題。我實際上開始輸入這個解決方案,然後中途投擲我想,嗯,這必須以前已經問過:) –

+0

這似乎是伎倆。真棒!我只想補充一點,重要的是讓c.x和c.y的方程式保持原樣。我認爲也許長度AB *長度應該被歸類在括號中,但那不起作用。直到我重新讀取另一個問題的答案時,我才意識到它是用這種方式來規範矢量的長度。再次感謝! – vince88