3.2 Постановка задачи
Обратная геодезическая засечка. Требуется определить координаты точки P по трем точкам с известными координатами и двум известным углам (каждый угол – угол между 2 соседними точками с вершиной в точке P).
3.3 Исходные данные
Табл. 3.1.
Исходные данные
Пункты | Направления | X | Y |
Хутор | 0 0 0 | 12480.95 | 10219.13 |
Крутик | 100 32 56 | 10241.98 | 12270.54 |
Юрьево | 192 56 33 | 8586.56 | 10552.15 |
Локно | 266 31 50 | 9655.10 | 8220.95 |
3.4. Алгоритм для Turbo Pascal
Program Zadacha3;
Uses CRT;
Var
g1,m1,s1,g2,m2,s2,g3,m3,s3,g4,m4,s4:integer;
x1,y1,x2,y2,x3,y3,x4,y4,vm1,vn1,vm2,vn2:real;
ra1,ra2,ra3,ra4,yg21,yg32,yg43,ct21,ct32,ct43:real;
Fi1,Fi2,Fi3,Fi4,De1,De2,De3,De4:real;
kipX1,kipX2,CredX,kipY1,kipY2,CredY:real;
t1,t2:text;
Begin
ClrScr;
Assign (t1,'data.txt');
Assign (t2,'result.txt');
Reset (t1);
Rewrite (t2);
{чтение из фаила исходных значений}
Readln(t1);
Readln(t1);
Readln(t1,g1,m1,s1);
Readln(t1);
Readln(t1,x1);
Readln(t1);
Readln(t1,y1);
Readln(t1);
Readln(t1);
Readln(t1,g2,m2,s2);
Readln(t1);
Readln(t1,x2);
Readln(t1);
Readln(t1,y2);
Readln(t1);
Readln(t1);
Readln(t1,g3,m3,s3);
Readln(t1);
Readln(t1,x3);
Readln(t1);
Readln(t1,y3);
Readln(t1);
Readln(t1);
Readln(t1,g4,m4,s4);
Readln(t1);
Readln(t1,x4);
Readln(t1);
Readln(t1,y4);
Writeln(t2,'Дано:');
Writeln(t2,'Пункт №1');
Writeln(t2,'Направление: ',g1,' градусов ',m1,' минут ',s1,' секунд;');
Writeln(t2,'X=',x1:6:2,'; Y=',y1:6:2,';');
Writeln(t2,'Пункт №2');
Writeln(t2,'Направление: ',g2,' градусов ',m2,' минут ',s2,' секунд;');
Writeln(t2,'X=',x2:6:2,'; Y=',y2:6:2,';');
Writeln(t2,'Пункт №3');
Writeln(t2,'Направление: ',g3,' градусов ',m3,' минут ',s3,' секунд;');
Writeln(t2,'X=',x3:6:2,' Y=',y3:6:2,';');
Writeln(t2,'Пункт №4');
Writeln(t2,'Направление: ',g4,' градусов ',m4,' минут ',s4,' секунд;');
Writeln(t2,'X=',x4:6:2,'; Y=',y4:6:2,' .');
Writeln('Dano:');
Writeln('Pynkt #1');
Writeln('Hapravlenie: ',g1,' gradysov ',m1,' minyt ',s1,' sekynd;');
Writeln('X=',x1:6:2,'; Y=',y1:6:2,';');
Writeln('Pynkt #2');
Writeln('Hapravlenie: ',g2,' gradysov ',m2,' minyt ',s2,' sekynd;');
Writeln('X=',x2:6:2,'; Y=',y2:6:2,';');
Writeln('Pynkt #3');
Writeln('Hapravlenie: ',g3,' gradysov ',m3,' minyt ',s3,' sekynd;');
Writeln('X=',x3:6:2,' Y=',y3:6:2,';');
Writeln('Pynkt #4');
Writeln('Hapravlenie: ',g4,' gradysov ',m4,' minyt ',s4,' sekynd;');
Writeln('X=',x4:6:2,'; Y=',y4:6:2,' .');
Begin
{Данные в радианах}
ra1:=((Pi)/180)*(g1+(m1/60)+(s1/3600));
ra2:=((Pi)/180)*(g2+(m2/60)+(s2/3600));
ra3:=((Pi)/180)*(g3+(m3/60)+(s3/3600));
ra4:=((Pi)/180)*(g4+(m4/60)+(s4/3600));
End;
Writeln(t2); Writeln(t2); Writeln(t2); Writeln(t2,'Решение:'); Writeln(t2);
Writeln(t2,'Направление 1 в радианах:',ra1:6:2,';');
Writeln(t2,'Направление 2 в радианах:',ra2:6:2,';');
Writeln(t2,'Направление 3 в радианах:',ra3:6:2,';');
Writeln(t2,'Направление 4 в радианах:',ra4:6:2,' .');
Writeln; Writeln('Reshenie:'); Writeln;
Writeln('Napravlenie 1 v radianax:',ra1:6:2,';');
Writeln('Napravlenie 2 v radianax:',ra2:6:2,';');
Writeln('Napravlenie 3 v radianax:',ra3:6:2,';');
Writeln('Napravlenie 4 v radianax:',ra4:6:2,' .');
Begin
{Углы}
yg21:=ra2-ra1;
yg32:=ra3-ra2;
yg43:=ra4-ra3;
End;
Writeln(t2);
Writeln(t2,'Угол 2-1 (в радианах)=',yg21:6:2,';');
Writeln(t2,'Угол 3-2 (в радианах)=',yg32:6:2,';');
Writeln(t2,'Угол 4-3 (в радианах)=',yg43:6:2,' .');
Writeln;
Writeln('Ygol 2-1 (v radianax)=',yg21:6:2,';');
Writeln('Ygol 3-2 (v radianax)=',yg32:6:2,';');
Writeln('Ygol 4-3 (v radianax)=',yg43:6:2,' .');
Begin
{Котангенсы углов}
ct21:=(cos(yg21)/sin(yg21));
ct32:=(cos(yg32)/sin(yg32));
ct43:=(cos(yg43)/sin(yg43));
End;
Writeln(t2);
Writeln(t2,'Котангенс угла 2-1 =',ct21:6:2,';');
Writeln(t2,'Котангенс угла 3-2 =',ct32:6:2,';');
Writeln(t2,'Котангенс угла 4-3 =',ct43:6:2,' .');
Writeln;
Writeln('Kotangens ygla 2-1 =',ct21:6:2,';');
Writeln('Kotangens ygla 3-2 =',ct32:6:2,';');
Writeln('Kotangens ygla 4-3 =',ct43:6:2,' .');
Begin
{Вспомогательные величины}
vm1:=y1*ct21+y2*(-(ct21)-(ct32))+y3*ct32+x1-x3;
vm2:=y2*ct32+y3*(-(ct32)-(ct43))+y4*ct43+x2-x4;
vn1:=x1*ct21+x2*(-(ct21)-(ct32))+x3*ct32-y1+y3;
vn2:=x2*ct32+x3*(-(ct32)-(ct43))+x4*ct43-y2+y4;
End;
Writeln(t2);
Writeln(t2,'Вспомогательная величина m1 = ',vm1:6:2,';');
Writeln(t2,'Вспомогательная величина n1 = ',vn1:6:2,';');
Writeln(t2,'Вспомогательная величина m2 = ',vm2:6:2,';');
Writeln(t2,'Вспомогательная величина n2 = ',vn2:6:2,' .');
Writeln;
Writeln('Vspomogatelnaya velichina m1 = ',vm1:6:2,';');
Writeln('Vspomogatelnaya velichina n1 = ',vn1:6:2,';');
Writeln('Vspomogatelnaya velichina m2 = ',vm2:6:2,';');
Writeln('Vspomogatelnaya velichina n2 = ',vn2:6:2,' .');
Begin
{Фи и дельта}
Fi1:=arctan(vm1/vn1);
Fi2:=(sin(Fi1)/cos(Fi1));
Fi3:=arctan(vm2/vn2);
Fi4:=(sin(Fi3)/cos(Fi3));
De1:=Fi1-yg21;
De2:=(sin(De1)/cos(De1));
De3:=Fi3-yg32;
De4:=(sin(De3)/cos(De3));
End;
Writeln(t2);
Writeln(t2,'Фи 1 = ',Fi1:6:2,'; Делта 1 = ',De1:6:2,';');
Writeln(t2,'Фи 2 = ',Fi2:6:2,'; Делта 2 = ',De2:6:2,';');
Writeln(t2,'Фи 3 = ',Fi3:6:2,'; Делта 3 = ',De3:6:2,';');
Writeln(t2,'Фи 4 = ',Fi4:6:2,'; Делта 4 = ',De4:6:2,' .');
Writeln;
Writeln('Fi 1 = ',Fi1:6:2,'; Delta 1 = ',De1:6:2,';');
Writeln('Fi 2 = ',Fi2:6:2,'; Delta 2 = ',De2:6:2,';');
Writeln('Fi 3 = ',Fi3:6:2,'; Delta 3 = ',De3:6:2,';');
Writeln('Fi 4 = ',Fi4:6:2,'; Delta 4 = ',De4:6:2,' .');
Begin
{Координаты искомого пункта}
kipX1:=(x1*De2-x2*Fi2+y2-y1)/(De2-Fi2);
kipX2:=(x2*De4-x3*Fi4+y3-y2)/(De4-Fi4);
{Среднее для X}
CredX:=(kipX1+kipX2)/2;
kipY1:=(kipX1-x2)*Fi2+y2;
kipY2:=(kipX2-x3)*Fi4+y3;
{Среднее для Y}
CredY:=(kipY1+kipY2)/2;
End;
Writeln(t2);
Writeln(t2,'Координата X искомого пункта 1: ',kipX1:6:2,';');
Writeln(t2,'Координата X искомого пункта 2: ',kipX2:6:2,';');
Writeln(t2,' Среднее значение X: ',CredX:6:2,';');
Writeln(t2,'Координата Y искомого пункта 1: ',kipY1:6:2,';');
Writeln(t2,'Координата Y искомого пункта 2: ',kipY2:6:2,';');
Writeln(t2,' Среднее значение Y: ',CredY:6:2,' .');
Writeln;
Writeln('Koordinata X ickomogo pynkta 1: ',kipX1:6:2,';');
Writeln('Koordinata X ickomogo pynkta 2: ',kipX2:6:2,';');
Writeln(' Srednee znachenie X: ',CredX:6:2,';');
Writeln('Koordinata Y ickomogo pynkta 1: ',kipY1:6:2,';');
Writeln('Koordinata Y ickomogo pynkta 2: ',kipY2:6:2,';');
Writeln(' Srednee znachenie Y: ',CredY:6:2,' .');
Writeln('chtenie iz faila "data.txt", zapic v "result.txt"');
Close (t1);
Close (t2);
Readkey;
End.
3.6 Содержание фаила «data.txt»
Пункт #1(Хутор)
Направление({Градусы}пробел{Минуты}пробел{Секунды}):
0 0 0
Координата X:
10798.58
Координата Y:
12689.72
Пункт #2(Крутик)
Направление({Градусы}пробел{Минуты}пробел{Секунды}):
73 15 40
Координата X:
8921.43
Координата Y:
11123.49
Пункт #3(Юрьево)
Направление({Градусы}пробел{Минуты}пробел{Секунды}):
180 17 23
Координата X:
9787.11
Координата Y:
8585.19
Пункт #4(Локно)
Направление({Градусы}пробел{Минуты}пробел{Секунды}):
282 28 14
Координата X:
12484.41
Координата Y:
10294.53
-----------------------------------------------------
3.7 Результат программы
Рис.3.3 Результаты в Turbo Pascal.
Содержание фаила «result.txt»
Дано:
Пункт №1
Направление: 0 градусов 0 минут 0 секунд;
X=10798.58; Y=12689.72;
Пункт №2
Направление: 73 градусов 15 минут 40 секунд;
X=8921.43; Y=11123.49;
Пункт №3
Направление: 180 градусов 17 минут 23 секунд;
X=9787.11 Y=8585.19;
Пункт №4
Направление: 282 градусов 28 минут 14 секунд;
X=12484.41; Y=10294.53 .
Решение:
Направление 1 в радианах: 0.00;
Направление 2 в радианах: 1.28;
Направление 3 в радианах: 3.15;
Направление 4 в радианах: 4.93 .
Угол 2-1 (в радианах)= 1.28;
Угол 3-2 (в радианах)= 1.87;
Угол 4-3 (в радианах)= 1.78 .
Котангенс угла 2-1 = 0.30;
Котангенс угла 3-2 = -0.31;
Котангенс угла 4-3 = -0.22 .
Вспомогательная величина m1 = 2259.94;
Вспомогательная величина n1 = -3805.11;
Вспомогательная величина m2 = -4709.38;
Вспомогательная величина n2 = -1146.05 .
Фи 1 = -0.54; Делта 1 = -1.81;
Фи 2 = -0.59; Делта 2 = 4.02;
Фи 3 = 1.33; Делта 3 = -0.54;
Фи 4 = 4.11; Делта 4 = -0.59 .
Координата X искомого пункта 1: 10217.52;
Координата X искомого пункта 2: 10217.50;
Среднее значение X: 10217.51;
Координата Y искомого пункта 1: 10353.71;
Координата Y искомого пункта 2: 10353.76;
Среднее значение Y: 10353.73 .
3.8 Табличные вычисления MS Excel
Рис.3.4 Проверка в MS Excel.
Рис. 3.5 Проверка в MS Excel в режиме отображения формул.
3.9 Вычисления в MathCad
Рис. 3.6 Проверка в MathCad 14.
3.10 Анализ
Задачу №3 (обратная геодезическая засечка) была решена с помощью языка программирования Turbo Pascal и проверена с помощью табличного процессора Microsoft Excel 2007 и MathCad. Результаты решений совпали, что говорит о правильности выбранного алгоритма решения задачи.
... многих странах (в том числе развитых) применение компьютеров в управлении городскими территориями, ведении кадастра, анализе рыночных тенденций в рамках города весьма ограничено. В связи с этим выделим причины, по которым автоматизация решения типовых задач управления региональной недвижимостью Тульской области, как, впрочем, и других городов России, представляется весьма разумной: все материалы ...
... кадастра памятников России и привязки его к ГИС «Компас-2», я изучил возможности, функции ГИС «Компас-2», а также возможность использования его для создания различных видов природных кадастров. Компас-2 – это сетевая система для представления, моделирования и анализа географической информации Функциональные возможности системы КОМПАС 2: публикация географической информации (ГИ) в сетях ...
... информации. Набираемая информация отображается на дисплее, что позволяет контролировать ее правильность. Клавиатура и дисплей АИС должны быть независимыми от других навигационных устройств. Судовыми системами отображения АИС могут быть система отображения электронных карт (ECDIS, ECS, RCDS), РЛС, САРП или дисплей персонального компьютера. АИС и связанные с ней датчики информации питаются от ...
... де-факто, чему способствовала и их большая универсальность). Таким образом, именно Microsoft Excel был выбран мной для разработки средства автоматизации расчетов в лабораторной работе «Предварительные вычисления в триангуляции». Поэтому другие средства построения электронных таблиц здесь не рассматриваются, но зато уделяестся внимание некоторым специфичным средствам Excel. Возможности EXCEL ...
0 комментариев