获取最接近给定目标XY位置的下一个XY位置

时间:2016-03-22 16:11:15

标签: javascript algorithm geometry

我在屏幕上的设定XY位置有一个点(A)(例如x = 100,y = 200),我在屏幕上的随机XY位置有另一个点(B)(例如x = 50) ,y = 50)。

我希望将B点直线移向点A。

如何计算B为达到此目的必须移动的XY位置?

2 个答案:

答案 0 :(得分:3)

如果您需要计算B和A之间的所有整数位置,请考虑使用Bresenham algorithm

enter image description here

答案 1 :(得分:0)

以下应该能够提出一个想法。 B点是一个随机点,x和y值在+/- 100之间。

var  A = {x:100,
          y:100},
     B = {x:Math.floor(Math.random()*201)-100,
          y:Math.floor(Math.random()*201)-100},
  diff = {x: A.x - B.x,
          y: A.y - B.y},
 steps = Math.min(diff.x, diff.y);
for (var i = 0; i < steps; i++) {
   B.x = B.x + diff.x/steps;
   B.y = B.y + diff.y/steps;
   console.log("Step #"+i+" B moving to X: " + B.x + " Y: " + B.y);
// plotB(Math.round(B.x), Math.round(B.y));
}