【发布时间】:2014-01-09 11:00:18
【问题描述】:
我正在创建一个 XNA 游戏,但在角度旋转方面与标准笛卡尔坐标不同,我有点困惑。
假设我有以下,我想找到这些向量之间的角度
Vector2 p1 = new Vector2(111, 0);
Vector2 p2 = new Vector2(223, 110);
float angle = (float)Math.Atan2(p2.Y - p1.Y, p2.X - p1.X);
Debug.WriteLine(MathHelper.ToDegrees(angle).ToString());
我想这个角度应该接近 90 度,但它给出了 44.48384。
想一想,我是否正确假设它是水平线之间的角度,即 Vector2(0,0) 和 Vector2(111, 0) 和 Vector2(0,0) 和 Vector2(223, 110) ?
但是,如果我使用 tan x = 110 / 223 计算角度,我得到的角度是 26.25。我错过了什么?
【问题讨论】:
-
您计算的角度是正确的。请记住,在 XNA 中,“向上”方向被视为 0 度。
标签: c# vector xna rotation trigonometry