我正在尝试制作一个简单的应用程序,将角色旋转为查看相对于其当前位置的向量。
旋转值范围为 0 - 180 和 -180 - 0。
数学不是我的强项,如果可以解释 C# 代码示例,我将不胜感激,我需要在上述范围内将值设置到旋转变量中。
使用
Atan2()
函数将相对 x、y 位置转换为角度
double dx = target.X - actor.X;
double dy = target.Y - actor.Y;
double angle = Math.Atan2(dy, dx) * 180 / Math.PI;
或者,用
float
:
float dx = target.X - actor.X;
float dy = target.Y - actor.Y;
float angle = MathF.Atan2(dy, dx) * 180 / MathF.PI;
可以通过将向量转换为极坐标符号(r,theta)来计算角度: http://en.wikipedia.org/wiki/Polar_coordinate_system#Converting_ Between_polar_and_Cartesian_coordinates
要从 x 和 y 获取 theata,您可以使用 http://msdn.microsoft.com/en-us/library/system.math.atan2.aspx
干杯。