XNA UnitCircle转换为Radians

时间:2015-02-26 21:46:10

标签: c# matrix xna rotation

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

你看,如果我向一个方向拉我的棍子,我也希望我的角色面对同样的方式。 Xbox控制器为我提供类似于UnitCircle的坐标,X和Y值的值为+1到-1,0是标准位置。我需要Radians中的角度才能在XNA中使用它,请帮助我,我不知道如何从Unit Circle转换为Radians。

我发现了http://en.wikipedia.org/wiki/Rotation_matrix,但很难理解

1 个答案:

答案 0 :(得分:0)

巨大的免责声明:我正在处理古老而被遗忘的触发器,所以如果我说错了,请原谅我!

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

Unit circle

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

信息告诉您三角形的高度和三角形的底部。

您想知道的是三角形尖端与中心接触的角度。

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

Triangle

你想知道绿色的角度,你知道相邻的一侧(这是你的x坐标)和相反的位置(这是你的y坐标)。有点SOHCAHTOA,你可以看到

tan(θ)= y / x

我们可以用

来解决

θ=(逆tan)(y / x)

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

我建议你花点时间在这里:http://www.mathsisfun.com/geometry/unit-circle.html来帮助你了解一些这些概念。