沿着一个向量移动一个点
问题描述:
我有一个由x,y和由标题,速度定义的向量定义的点。我试图沿着这个向量移动点x,y,距离'速度'。下面是我目前使用的代码:沿着一个向量移动一个点
self.x += self.speed * cos(self.heading);
self.y += self.speed * sin(self.heading);
标题可以是一个完整的圆的任何角度 - 0至2π(0-360度)。问题是上述代码:
- 仅沿着x或y轴移动时角度为0-> 270
- 例如,当化身面向右上角(相对45度),它直线上升。
- 例如,当化身面向右上角(相对45度),它直线上升。
- 当角度为270-不动弹> 360
航向,速度,X和Y都是双和航向通过用户触摸在一个方向垫报下角。我知道标题是正确的,因为化身旋转到正确的方向,这只是我遇到问题的实际运动。
感谢所有帮助
克里斯 -
答
移动直线上升会sin(90)
,不sin(45)
。所以你在那里有一些问题。
(这将只是继续增加你的速度y和没有x因为cos(90) == 0
)。
看起来很对我。你确定self.speed和self.heading是正确的吗? (他们都是原始的双打,而不是NSNumbers?) – 2010-12-22 01:49:40