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) 使用此单位矢量作为速度(您可以将其乘以某个常数因子)
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;