Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我想从两组坐标计算出所需的旋转,知道北方在哪里_C#_Math_Coordinates - Fatal编程技术网

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

嗨,我希望我能尽可能清楚地说明这一点,但首先,这里是我想要计算的图片:

相机位于0:0(x和y)位置,对象位于3:-10。 摄像机以1°的角度朝北。如何计算问号所在的角度? 我的数学不是很好,如果可以详细解释一下这个过程,那就太好了。所有这些都是使用c#。
谢谢你的帮助

这是背后的数学:

反正切(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
在一般情况下可能会更好。