XNA UnitCircle 转换为弧度

XNA UnitCircle convert to Radians

我正在 XNA 中做一个 2D(从上面看)游戏,但这更像是一个数学问题。 我正在尝试以与我在 Xbox 控制器上推动摇杆的方向相同的方向旋转精灵。

你看,如果我朝一个方向拉我的棍子,我也希望我的角色面向相同的方向。 Xbox 控制器给我坐标,就像在 UnitCircle 中一样,X 和 Y 值的值为 +1 到 -1,0 是标准位置。我需要弧度的角度才能在 XNA 中使用它,请帮助我,我不知道如何从单位圆转换为弧度。

我找到了这个http://en.wikipedia.org/wiki/Rotation_matrix但是很难理解

巨大的免责声明:我正在使用古老且被遗忘的三角函数,所以如果我说错了请原谅我!

首先,想一想单位圆信息告诉你什么。它看起来像这样:

橙色 (x,y) 坐标告诉您控制器移动的方向。

信息告诉你三角形的高,三角形的底边。

你想知道的是三角形尖端与中心的夹角。

另一种看待我们橙色三角形的方式是这样的。

你想知道绿色的角度,你知道相邻的边(这是你的 x 坐标)和相对的站点(这是你的 y 坐标)。一点 SOHCAHTOA,你可以看到

tan(θ) = y / x

我们可以用

来解决

θ = (逆tan) (y/x)

看起来 C# 在 tan 和 atan 中使用弧度。

我建议花一些时间在这里:http://www.mathsisfun.com/geometry/unit-circle.html 以帮助您了解其中的一些概念。