C# 我想从两组坐标计算出所需的旋转,知道北方在哪里
嗨,我希望我能尽可能清楚地说明这一点,但首先,这里是我想要计算的图片: 相机位于0:0(x和y)位置,对象位于3:-10。 摄像机以1°的角度朝北。如何计算问号所在的角度? 我的数学不是很好,如果可以详细解释一下这个过程,那就太好了。所有这些都是使用c#。C# 我想从两组坐标计算出所需的旋转,知道北方在哪里,c#,math,coordinates,C#,Math,Coordinates,嗨,我希望我能尽可能清楚地说明这一点,但首先,这里是我想要计算的图片: 相机位于0:0(x和y)位置,对象位于3:-10。 摄像机以1°的角度朝北。如何计算问号所在的角度? 我的数学不是很好,如果可以详细解释一下这个过程,那就太好了。所有这些都是使用c#。 谢谢你的帮助 这是背后的数学: 反正切(y/x)-原点 有关数学的解释,请参阅。我是根据您的描述得出这个结果的 private double CalcAngle(double x, double y, double extra) { d
谢谢你的帮助 这是背后的数学: 反正切(y/x)-原点
有关数学的解释,请参阅。我是根据您的描述得出这个结果的
private double CalcAngle(double x, double y, double extra)
{
double angle = Math.Atan2(y, x); // Calculate angle
angle = angle*180/Math.PI; // Convert to degrees (from radians)
angle = 90 - angle; // Change from angle with x-as to angle with north
angle -= extra; // Remove the extra angle
return angle;
}
使用
Atan2()
而不是Atan()
将在正确的象限中给出结果。您想要方位或角度的差异吗?它们略有不同(考虑对象通过摄影机方向反射时-角度差将保持不变,但方位差将更大)@meowgoesthedog我希望角度差是的。谢谢Atan2
在一般情况下可能会更好。