Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursovaya_rabota_po_informatike_Nikolaeva_Dmitr...doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.99 Mб
Скачать

Задание 5 Решение прямой угловой засечки по формулам Гаусса.

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

Рис. 13. Схема для вычисления координат по формулам Гаусса.

Расчет неизвестных координат точки Р может быть произведен по формулам Гаусса:

.

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

Таблица 5(исходные данные для решения прямой угловой засечки)

α

β

г

м

г

м

16

48

50

52

51

34

58

309

27

  1. Расчет в Microsoft Excel

Рассмотрим решение примера по расчету прямой угловой засечки по формулам Гаусса с помощью программы MS Excel.

Спланируем оформление вычислений так, что в ячейках A1-L1 разместим подписи к столбцам. В ячейках A2-D2 поместим координаты точек. В ячейках E2 и F2 разместим градусы и минуты угла α, а в ячейках H2 и I2 для угла β. В ячейку G2 поместим формулу =E2+F2/60. Она будет содержать угол α в градусах с долями. Ячейка J2 будет содержать ту же информацию, но для угла β =H2+I2/60 ячейки K2 и L2 поместим формулы для расчета прямой угловой засечки xp и yp:

=(A2*TAN(G2*ПИ()/180)-C2*TAN(J2*ПИ()/180)+(D2-B2))/(TAN(G2*ПИ()/180)-TAN(J2*ПИ()/180))

=B2+(K2-A2)*TAN(G2*ПИ()/180)

П роверка(рис.14)

  1. Расчет в Mathcad

Рассмотрим решение примера для прямой угловой засечки по формулам Гаусса с помощью программы MathCad. Запустим систему MathCad. Будем исходить из того, что координаты точек заданы . Будем задавать их с помощью операции присваивания в рабочем поле окна программы. Для координат точек это можно сделать с помощью конструкций . Для набора знака := следует воспользоваться кнопкой := с панели Арифметика. Затем следует вычислить величину угла в градусах с долями:

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

Для вывода значений мы пользуемся знаком “=”.

Таким образом, весь вычисляющий код будет иметь вид:

  1. Расчет в MatLab

Решение задачи вычисления координат точки по формулам Гаусса можно произвести с использованием следующей последовательности операторов:

% Расчет по формулам Гаусса

clc

x1 = input('x1->');

y1 = input('y1->');

x2 = input('x2->');

y2 = input('y2->');

a1g = input('a1(grag)->');

a1m = input('a1(min)->');

a2g = input('a2(grag)->');

a2m = input('a2(min)->');

a1= a1g+a1m/60; a2=a2g+a2m/60;

a1= a1 * pi / 180; a2 = a2 * pi / 180;

xp= (x1 * tan(a1) - x2 * tan(a2) + y2 - y1) / (tan(a1) - tan(a2))

yp= y1 + (xp-x1)*tan(a1)

x1->48

y1->50

x2->52

y2->51

a1(grag)->34

a1(min)->58.0

a2(grag)->309

a2(min)->27.0

xp = 51.0612

yp = 52.1408

4 . Расчет в Visual Basic

Рис. 15. Вид формы для решения прямой угловой засечки по формулам Гаусса.

Сначала необходимо прочитать введенные в поля значения координат. Для координат вершин это можно сделать с помощью конструкций:

x1 = Val(TextBox1.Text): y1 = Val(TextBox3.Text)

x2 = Val(TextBox2.Text): y2 = Val(TextBox4.Text)

Затем введя постоянную величину pi=3.1415926 необходимо прочитать введенные в поля значения углов в градусах с долями. Это можно сделать с помощью конструкций:

al1 = Val(TextBox5.Text) + Val(TextBox7.Text) / 60

al2 = Val(TextBox6.Text) + Val(TextBox8.Text) / 60

Для того чтобы перевести углы из градусов в радианы, мы пользуемся множителем .

al1 = al1 * Pi / 180: al2 = al2 * Pi / 180

Далее мы вводим основные формулы для расчета координат точки:

xp = (x1 * Tan(al1) - x2 * Tan(al2) + y2 - y1) / (Tan(al1) - Tan(al2))

yp = y1 + (xp - x1) * Tan(al1)

Для вывода ответа используем следующие операторы:

Label9.Caption = "xp= " + Str(xp)

Label10.Caption = "yp= " + Str(yp)

Таким образом, весь вычисляющий код будет иметь вид:

Private Sub CommandButton1_Click()

x1 = Val(TextBox1.Text): y1 = Val(TextBox3.Text)

x2 = Val(TextBox2.Text): y2 = Val(TextBox4.Text)

al1 = Val(TextBox5.Text) + Val(TextBox7.Text) / 60

al2 = Val(TextBox6.Text) + Val(TextBox8.Text) / 60

Pi = 3.1415926

al1 = al1 * Pi / 180: al2 = al2 * Pi / 180

xp = (x1 * Tan(al1) - x2 * Tan(al2) + y2 - y1) / (Tan(al1) - Tan(al2))

yp = y1 + (xp - x1) * Tan(al1)

Label9.Caption = "xp= " + Str(xp)

Label10.Caption = "yp= " + Str(yp)

End Sub