首页 » 技术分享 » 前方交会

前方交会

 

1 计算公式    1

1.1 角度前方交会    1

1.1.1 公式推导    1

1.1.2 验证代码    3

1.2 方位前方交会    4

1.2.1 公式推导    4

1.2.2 验证代码    5

2 精度评定    6

 

 

1 计算公式

1.1 角度前方交会

1.1.1 公式推导

为了下面讨论的方便,这里对ABP的顺序进行了约定:ABP的排列顺序必须与方位角的增加方向一致。下图是数学系,方位角增加方向是逆时针,因此ABP为逆时针排列。

图1.1

下图是测量系,方位角增加方向是顺时针,因此ABP为顺时针排列。

图1.2

1.1.2 验证代码

验证上面公式的C代码如下:

srand(time(NULL));

double xA = rand();

double yA = rand();

double xB = rand();

double yB = rand();

double xP = rand();

double yP = rand();

double sign = 1.0;

double A = atan2(yP - yA,xP - xA) - atan2(yB - yA,xB - xA);

double B = atan2(yA - yB,xA - xB) - atan2(yP - yB,xP - xB);

if((yP - yA) * (xB - xA) - (xP - xA) * (yB - yA) < 0.0)

{//A,B,P与方位角增加方向相反

A = -A;

B = -B;

sign = -1.0;

}

double cA = 1.0 / tan(A);

double cB = 1.0 / tan(B);

double XP = (xA * cB + xB * cA + (yA - yB) * sign) / (cA + cB);

double YP = (yA * cB + yB * cA + (xB - xA) * sign) / (cA + cB);

double deltaX = XP - xP;

double deltaY = YP - yP;

转载自原文链接, 如需删除请联系管理员。

原文链接:前方交会,转载请注明来源!

0