试图计算两个角度之间的差异(atan2)

ATD*_*ATD 4 c# geometry distance angle atan2

Atan2(y,x)将在-pi和pi之间返回一个浮点数.我想计算两个角度之间的距离,但非连续性让我失望.

为了更好地理解,请参阅此

我希望能够计算角度1和角度2之间的距离.

这一点的重点是能够从中心到指定角度创建一个圆锥体.基本上我将评估:

if(DistanceFromAngle1 < pi/4 [45°])
{
  Angle2 is part of cone
}
Run Code Online (Sandbox Code Playgroud)

Sam*_*Axe 5

dAngle1 = //convert angle1 to degrees
dAngle2 = // convert to degrees

delta = Math.Max(dAngle1, dAngle2) - Math.Min(dAngle1, dAngle2)
if (180 < delta) {
  delta = 360 - delta;
}

// convert delta to radians if you want
Run Code Online (Sandbox Code Playgroud)


Ant*_*ida 5

如果距离是指连接两个拦截点的直线,则可以通过以下方式计算距离:

SQRT( ( ABS|cos(A) - cos(B)| )^2 + ( ABS|sin(A) - sin(B)| )^2 )
Run Code Online (Sandbox Code Playgroud)

SQRT =平方根

ABS =绝对值

如果距离是角度,则通过执行计算(伪代码)

var angle = ABS(A - B)
if(angle > pi) angle = 2*pi - angle
return angle
Run Code Online (Sandbox Code Playgroud)