Страница 1 из 3

Помогите с расчетом направления отрезка

Добавлено: 30 июн 2016, 10:10
klerk184
Добрый день Всем!
Нужна помощь в расчете направления. Для определения направлений отрезков данных фигур:
2016-06-30_13-06-32.png
2016-06-30_13-06-32.png (9.8 КБ) 2969 просмотров
Я сделал вот так:

Код: Выделить всё

If end_x > start_x And end_y > start_y Then
										direction = "СВ"
									End If
									If end_x < start_x And end_y < start_y Then
										direction = "ЮЗ"
									End If
									If end_x < start_x And end_y > start_y Then
										direction = "СЗ"
									End If
									If end_x > start_x And end_y < start_y Then
										direction = "ЮВ"
									End If
									If end_x = start_x And end_y > start_y Then
										direction = "С"
									End If
									If end_x = start_x And end_y < start_y Then
										direction = "Ю"
									End If
									If end_x > start_x And end_y = start_y Then
										direction = "В"
									End If
									If end_x < start_x And end_y = start_y Then
										direction = "З"
									End If
т.е. сравнением координат точек.
Теперь не могу сообразить, как мне вычислить направление в градусах и минутах, чтоб в итоге получить например такие данные: отрезок 1-2 СВ:89°21'56.16"

Re: Помогите с расчетом направления отрезка

Добавлено: 30 июн 2016, 12:37
trir

Re: Помогите с расчетом направления отрезка

Добавлено: 30 июн 2016, 18:05
Boris
По моему для проекционных координат все же чаще используют arctg (арктангенс)
Обратные_тригонометрические_функции

Re: Помогите с расчетом направления отрезка

Добавлено: 30 июн 2016, 19:41
Ariki
Удобнее всего использовать atan2(), но в MapBasic её нет, так что придётся реализовать самостоятельно через atn(). Формулы по ссылке в Википедии. Ещё нужно будет перевести радианы в градусы-минуты-секунды, но об этом на ГИС-Лабе даже целая статья есть.

Re: Помогите с расчетом направления отрезка

Добавлено: 01 июл 2016, 05:49
klerk184
Спасибо всем. Буду разбираться!

Re: Помогите с расчетом направления отрезка

Добавлено: 01 июл 2016, 07:01
klerk184
Ariki писал(а):Удобнее всего использовать atan2(), но в MapBasic её нет, так что придётся реализовать самостоятельно через atn(). Формулы по ссылке в Википедии. Ещё нужно будет перевести радианы в градусы-минуты-секунды, но об этом на ГИС-Лабе даже целая статья есть.
мдааа... честно ничего не понял из формул. не знаю как все это применить на практике. Может сможете немного разжевать для не понимающего в геометрии и тому подобному)))

Re: Помогите с расчетом направления отрезка

Добавлено: 01 июл 2016, 07:26
dab
klerk184 писал(а): Нужна помощь в расчете направления. Для определения направлений отрезков данных фигур:
У меня сложилось впечатление, что Вам нужно определить порядок обхода точек многоугольника - "по часовой" или против. Если так, Вам сюда http://algolist.manual.ru/maths/geom/polygon/orient.php

Re: Помогите с расчетом направления отрезка

Добавлено: 01 июл 2016, 07:34
klerk184
dab писал(а):
klerk184 писал(а): Нужна помощь в расчете направления. Для определения направлений отрезков данных фигур:
У меня сложилось впечатление, что Вам нужно определить порядок обхода точек многоугольника - "по часовой" или против. Если так, Вам сюда http://algolist.manual.ru/maths/geom/polygon/orient.php
Нет, чтоб нумерация шла строго по часовой стрелке, я уже сделал. Теперь нужно вычислить направление отрезка в градусах, минутах и секундах

Re: Помогите с расчетом направления отрезка

Добавлено: 01 июл 2016, 11:53
Ariki
klerk184 писал(а): мдааа... честно ничего не понял из формул. не знаю как все это применить на практике. Может сможете немного разжевать для не понимающего в геометрии и тому подобному)))
А что вам непонятно? Это же самые основы тригонометрии. Вычисляете разности координат Δx и Δy между концом и началом отрезка, а затем в зависимости от знаков разностей делите одно на другое, вычисляете арктангенс, при необходимости прибавляете или отнимаете π. Получаете угол в радианах, затем переводите его в градусы и конвертируете в представление в виде градусов, минут и секунд путём последовательного отбрасывания целой части и умножения дробной части на 60.

Re: Помогите с расчетом направления отрезка

Добавлено: 01 июл 2016, 12:07
klerk184
Ariki писал(а):
klerk184 писал(а): мдааа... честно ничего не понял из формул. не знаю как все это применить на практике. Может сможете немного разжевать для не понимающего в геометрии и тому подобному)))
А что вам непонятно? Это же самые основы тригонометрии. Вычисляете разности координат Δx и Δy между концом и началом отрезка, а затем в зависимости от знаков разностей делите одно на другое, вычисляете арктангенс, при необходимости прибавляете или отнимаете π. Получаете угол в радианах, затем переводите его в градусы и конвертируете в представление в виде градусов, минут и секунд путём последовательного отбрасывания целой части и умножения дробной части на 60.
Спасибо огромное. Теперь я все понял! я просто никогда с тригонометрией не сталкивался

Re: Помогите с расчетом направления отрезка

Добавлено: 04 июл 2016, 06:11
klerk184
Всем привет! Оказалось что такое решение не подходит, т.к. система координат в WGS-84
сейчас думаю как по другому найти. может кто знает? пишите))

Re: Помогите с расчетом направления отрезка

Добавлено: 04 июл 2016, 07:33
klerk184
Мне нужно найти угол альфа, на рисунке я попытался нарисовать. Из рисунка: сторона а=b, так как это радиус. как найти сторону С и угол альфа?
2016-06-30_13-06-32 (2).png
2016-06-30_13-06-32 (2).png (28.64 КБ) 2633 просмотра

Re: Помогите с расчетом направления отрезка

Добавлено: 04 июл 2016, 12:35
trir

Re: Помогите с расчетом направления отрезка

Добавлено: 04 июл 2016, 12:42
klerk184
А причем тут сфера? у меня же вроде в плоскости.

Re: Помогите с расчетом направления отрезка

Добавлено: 04 июл 2016, 12:59
trir
система координат в WGS-84
http://gis-lab.info/qa/sphere-geodesic- ... oblem.html