2011-11-28 66 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