扩展线段的算法

时间:2011-11-28 07:09:56

标签: java math geometry

  

可能重复:
  Extend a line segment a specific distance

好的,出于某种原因我在这上面写了一个空白。我知道一个线段的两个点,我想将该线段延长一个已知的距离。所以,我知道扩展的起点,我知道扩展的斜率,我知道扩展的长度...我如何找到该扩展的结束坐标?

我正在为一个台球游戏做这个,我想弄清楚cueball在什么时候必须击中对象球才能将它放入对象口袋。我已经的线段是从口袋到对象球中间的线。线段扩展的终点将是我必须发送cueball的坐标,以便以正确的角度击中对象球以使其下沉。我希望这是有道理的。顺便说一下,我正在使用Java。谢谢你的帮助。

1 个答案:

答案 0 :(得分:5)

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