从x和y速度计算方向角

Dar*_*ski 3 trigonometry angle

我正在开发Game Maker类游戏中的游戏(不过是真正的游戏制作者),因为我在编写真实语言游戏(可以编写普通应用程序,而不是游戏)方面失败了很多次.

无论如何,在我使用方向功能的程序中,有时被证明是有缺陷的.但是对象的x和y速度总是正确的,所以我想计算那些方向角度(以度为单位).不幸的是,我不是数学天才,我总是在三角学方面失败;(你能帮助我吗?

我的游戏制作IDE的角度坐标系如下:

         270 deg.
  180 deg.      0 deg.
         90 deg.
Run Code Online (Sandbox Code Playgroud)

定位系统就像在大多数环境中一样(左上角为0,0)

Jon*_*oni 12

数学库通常带有一个atan2专门用于此目的的函数:

double angle = atan2(y, x);
Run Code Online (Sandbox Code Playgroud)

角度以弧度为单位; 乘以180/PI转换为度数.角度范围从-pi到pi.0角是正x轴,角度顺时针增长.如果您想要其他配置,则需要进行微小的更改,例如0角是负y轴,范围是0到359.99度.

使用atan2替代atan或任何其他反向触发功能的主要原因是它为您找出了正确的角度,并且您不需要一系列if语句.