Java 将恒定速度设置为处理向量

Java 将恒定速度设置为处理向量,java,vector,processing,Java,Vector,Processing,我在处理过程中有一个向量跟踪鼠标点击: friendlies.get(i).setXSpeed((friendlies.get(i).getmx()-friendlies.get(i).getX())/100); friendlies.get(i).setYSpeed((friendlies.get(i).getmy()-friendlies.get(i).getY())/100); friendlies.get(i)是向量,getmx()返回鼠标单击时的位置。 唯一的问题是速度随着向量接近

我在处理过程中有一个向量跟踪鼠标点击:

friendlies.get(i).setXSpeed((friendlies.get(i).getmx()-friendlies.get(i).getX())/100);

friendlies.get(i).setYSpeed((friendlies.get(i).getmy()-friendlies.get(i).getY())/100);
friendlies.get(i
)是向量,
getmx()
返回鼠标单击时的位置。
唯一的问题是速度随着向量接近其目的地而降低,我不知道如何使速度恒定

试试这样的方法:

  • 1) 获取方向向量(从元素到鼠标单击)
  • 2) 将此方向向量规格化为单位向量
  • 3) 使用此单位矢量作为速度(您可以将其乘以某个常数因子)


也许您正在计算每次迭代的(差值/100)?差值减小,因此速度也减小。例如,您需要记住最初的差异,并在每次迭代中重复使用?
PVector pos = friendlies.get(i);

// direction vector
PVector dir = new PVector(mouseX - pos.x, mouseY - pos.y);

// now it becomes unit-vector (with length 1)
dir.normalize();

pos.x = pos.x + dir.x * factor;
pos.y = pos.y + dir.y * factor;