这是一个非常简单的问题,但我找不到答案,所以我支持自己的嘲笑。给定一个向量,计算一个点距离l
给定一个矢量:
(在这种情况下会从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)。
德米特里的答案是正确的。
你尝试过什么双X和Y的两倍?你用Google搜索了什么?用三角函数做什么? 'Math.Cos'? 'Math.Sin'? 'Math.Atan2'? –
x_new = x + l * Math.Cos(fi); y_new = y + l * Math.Sin(fi);其中fi是角度,在你的情况Math.Atan2(9 - 3,9 - 2) –
看起来像解决方案在这里:http://stackoverflow.com/questions/1800138/given-a-start-and-end-点到点距离计算一点一线?rq = 1 – zetar