通过移动距离和度数设置vector2坐标

时间:2014-05-22 17:31:26

标签: math vector-graphics pi

我在2D游戏中有一个Vector2,我现在要做的是设置我的vector2 x和y,通过使用度数旋转计算它们

我是否需要使用PI计算新的X和Y坐标,然后每秒添加移动距离以获得正确的坐标?

示例:假设度数为90,这意味着我的游戏对象将向前移动,每秒5个浮动单位,然后Y将是5,10,15,如果度数为180,那么X将每秒增加5,这很简单,但是对于38,268等其他学位如何做呢?

1 个答案:

答案 0 :(得分:0)

通常的惯例是在正X方向上0度指向并且随着角度增加,您逆时针旋转方向。你的约定似乎是在负X方向上0度点,并且角度顺时针增加,所以首先你必须将你的角度(比如alpha)翻译成具有通常约定的角度,比如beta

beta = 180.0 - alpha

接下来,三角函数假设弧度从0到2π而不是从0到360,因此您必须将beta转换为弧度的角度,比如theta

theta = 2.0*PI*beta/360.0

最后,cos(theta)给出了在theta给出的方向上移动1个单位的X的变化,而sin(theta)给出了Y的变化。所以你需要

X = X + D * cos(theta)
Y = Y + D * sintheta)

距离D.使用您的约定,这转换为

X = X + D * cos(2.0*PI*(180.0-alpha)/360.0)
Y = Y + D * sin(2.0*PI*(180.0-alpha)/360.0)