这是一个非常简单的问题,但我找不到答案,所以我准备好接受嘲笑。
给定一个向量:
(在这种情况下,从 2,3 到 9,9)我想从 2,3 开始,沿着向量向上移动一段长度为 l 的距离。
如何计算新点 (x,y)?谢谢!
这是代码(在实现了德米特里的方程式之后):
double MetersMoved = ((Dinosaurs[i].Speed * 1000) / (60 * 60)) * TimeStepInSecs;
double fi = Math.Atan2((Dinosaurs[i].Goal.Y - Dinosaurs[i].Head.Y),(Dinosaurs[i].Goal.X - Dinosaurs[i].Head.X));
Dinosaurs[i].Head.X = Dinosaurs[i].Head.X + MetersMoved * Math.Cos(fi);
Dinosaurs[i].Head.Y = Dinosaurs[i].Head.Y + MetersMoved * Math.Sin(fi);
恐龙在正确的矢量上对齐,但没有前进(一个应该移动 2 个像素,另一个应该移动大约 7 个像素)。
德米特里的回答是正确的。