Смекни!
smekni.com

Использование современной компьютерной техники и программного обеспечения для решения прикладных (стр. 3 из 6)

Рис.1.4 Проверка в MS Excel.


Рис. 1.5 Проверка в MS Excel в режиме отображения формул.

1.9 Вычисления в MathCad

Рис. 1.6 Проверка в MathCad 14.

1.10 Анализ

Таким образом, обратная геодезическая задача была решена с помощью языка программирования Turbo Pascal и затем была проверена с помощью табличного процессора Microsoft Excel 2007 и MathCad 14.Результаты решений совпали, что говорит о правильности выбранного алгоритма решения задачи.

2. Прямая угловая засечка

2.1 Теоретические сведения

Прямая угловая (геодезическая) засечка - такое название носит способ определения координат точки местности Р , если на плоскости дана система точек геодезической сети с известными координатами

и на этих точках измерены горизонтальные углы
(рис.2.1.).

Р P

Рис. 2.1. Схемы прямой геодезической засечки.

Большое значение имеет величина угла при вершине треугольника – угла засечки , от которого во многом зависит точность определения координат. В инструкциях по проведению геодезической съемки указывается, что угол засечки не должен быть меньше 30о и больше 150о.

Для определения координат точки Р можно использовать формулы Юнга или формулы Гаусса. Чаще используются формулы Юнга, которые еще называют формулами котангенсов внутренних углов треугольника.

(2.1)

(2.2)

Широко используются и формулы Гаусса. В этом случае исходными данными являются не только координаты пунктов А1 и А2 и измеренные горизонтальные углы , но и вычисленный дирекционный угол стороны А1 А2.

(2.3)

(2.4)

Если пунктов геодезической сети более двух (рис.2.1б), то исходные данные являются избыточными, т.к. для определения искомых координат точки Р достаточно знать координаты и углы двух точек одного треугольника. Но в инструкции по выполнению геодезических работ требуют, чтобы координаты точки Р определялись как минимум из двух треугольников.

Избыточность исходных данных позволяет повысить надежность определения окончательных значений искомых величин за счет применения правила арифметического среднего.

(2.5)

, (2.6)

где XP k , YP k координаты, определенные из k-того треугольника.

2.2. Постановка задачи

Определить координаты точки P по трем точкам с известными координатами и 4 углам. (2 треугольникам)

2.3 Исходные данные

Табл. 2.1

№ пп X, м Y, м B1, DDD MM SS B2, DDD MM SS
11 5935.51 5441.24 98 4 30
22 5687.41 5172.76 63 0 12 41 54 46
33 5142.93 5460.08 54 19 48

2.4. Алгоритм для Turbo Pascal

xP12:=x1+(((y2-y1)*sin(RB2P2))/(sin(Alfa12)*sin(RB1P1+RB2P2)))*cos(Alfa12-RB1P1); yP12:=y1+(((y2-y1)*sin(RB2P2))/(sin(Alfa12)*sin(RB1P1+RB2P2)))*sin(Alfa12-RB1P1); xP23:=x2+(((y3-y2)*sin(RB2P3))/(sin(Alfa23)*sin(RB1P2+RB2P3)))*cos(Alfa23-RB1P2); yP23:=y2+(((y3-y2)*sin(RB2P3))/(sin(Alfa23)*sin(RB1P2+RB2P3)))*sin(Alfa23-RB1P2);

*процедура для определения приращений

**процедура для нахождения румбов

***процедура для определение значения дирекционного угла и четверти

****процедура для перевода из радиан в градусы


2.5 Текст программы

Program Zadacha2;

Uses CRT;

Var

GB1P1,MB1P1,SB1P1,GB1P2,MB1P2,SB1P2,GB2P2,MB2P2,SB2P2,GB2P3,MB2P3,SB2P3:integer;

x1,y1,x2,y2,x3,y3:real;

Dx12,Dy12,Dx23,Dy23,R12,R23,Alfa12,Alfa23:real;

AlfaG12,AlfaGr12,AlfaG23,AlfaGr23,AlfaM12,AlfaMi12,AlfaM23,AlfaMi23,AlfaS23,AlfaS12:real;

RB1P1,RB1P2,RB2P2,RB2P3,xP12,yP12,xP23,yP23,SRx,SRy:real;

t1,t2:text;

{процедура для определения приращений}

procedure Prir (var k1:real; var k2:real; var Dd:real);

begin

Dd:=k2-k1;

end;

{процедура для перевода в грудусы}

procedure Gradyc (var A,AGr,AMi,AS:real);

Var

AG,AM:real;

begin

AG:=180*(A/Pi);

AGr:=int(AG);

AM:=60*(AG-AGr);

AMi:=int(AM);

AS:=int(60*(AM-AMi));

end;

{процедура для нахождения румбов}

procedure Rymb (var X,Y,R:real);

begin

R:=arctan(abs(Y/X));

end;

{процедура для определение значения дирекционного угла и четверти}

procedure Analiz (var X,Y,R,A:real);

begin

If (X>0) and (Y>0) Then

Begin

A:=R;

Writeln('I chetvert');

Writeln(t2,'I четверть');

Writeln('Direkcionnii ygol raven(v radianax):');

Writeln(t2,'Дирекционный угол равен(в радианах):');

Writeln(A:6:3);

Writeln(t2,A:6:3);

End;

If (X<0) and (Y>0) Then

Begin

A:=(Pi)-R;

Writeln('II chetvert');

Writeln(t2,'II четверть');

Writeln('Direkcionnii ygol raven(v radianax):');

Writeln(t2,'Дирекционный угол равен(в радианах):');

Writeln(A:6:3);

Writeln(t2,A:6:3);

End;

If (X<0) and (Y<0) Then

Begin

A:=(Pi)+R;

Writeln('III chetvert');

Writeln(t2,'III четверть');

Writeln('Direkcionnii ygol raven(v radianax):');

Writeln(t2,'Дирекционный угол равен(в радианах):');

Writeln(A:6:3);

Writeln(t2,A:6:3);

End;

If (X>0) and (Y<0) Then

Begin

A:=(2*(Pi)-R);

Writeln('IV chetvert');

Writeln(t2,'IV четверть');

Writeln('Direkcionnii ygol raven(v radianax):');

Writeln(t2,'Дирекционный угол равен(в радианах):');

Writeln(A:6:3);

Writeln(t2,A:6:3);

End;

end;

Begin

ClrScr;

Assign (t1,'in.txt');

Assign (t2,'out.txt');

Reset (t1);

Rewrite (t2);

{чтение из фаила исходных значений}

Readln(t1);

Readln(t1);

Readln(t1,x1);

Readln(t1);

Readln(t1,y1);

Readln(t1);

Readln(t1);

Readln(t1,GB1P1);

Readln(t1);

Readln(t1,MB1P1);

Readln(t1);

Readln(t1,SB1P1);

Readln(t1);

Readln(t1);

Readln(t1);

Readln(t1,x2);

Readln(t1);

Readln(t1,y2);

Readln(t1);

Readln(t1);

Readln(t1,GB1P2);

Readln(t1);

Readln(t1,MB1P2);

Readln(t1);

Readln(t1,SB1P2);

Readln(t1);

Readln(t1);

Readln(t1,GB2P2);

Readln(t1);

Readln(t1,MB2P2);

Readln(t1);

Readln(t1,SB2P2);

Readln(t1);

Readln(t1);

Readln(t1);

Readln(t1,x3);