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

MapInfo, MapBasic
klerk184
Участник
Сообщения: 71
Зарегистрирован: 23 июн 2016, 11:56
Репутация: 0

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

Сообщение klerk184 » 30 июн 2016, 10:10

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

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

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"
Последний раз редактировалось klerk184 08 июл 2016, 09:28, всего редактировалось 1 раз.

trir
Гуру
Сообщения: 5278
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1014
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

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

Сообщение trir » 30 июн 2016, 12:37


Boris
Гуру
Сообщения: 4205
Зарегистрирован: 10 апр 2006, 22:34
Репутация: 433
Откуда: Париж

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

Сообщение Boris » 30 июн 2016, 18:05

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

Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

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

Сообщение Ariki » 30 июн 2016, 19:41

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

klerk184
Участник
Сообщения: 71
Зарегистрирован: 23 июн 2016, 11:56
Репутация: 0

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

Сообщение klerk184 » 01 июл 2016, 05:49

Спасибо всем. Буду разбираться!

klerk184
Участник
Сообщения: 71
Зарегистрирован: 23 июн 2016, 11:56
Репутация: 0

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

Сообщение klerk184 » 01 июл 2016, 07:01

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

Аватара пользователя
dab
Гуру
Сообщения: 671
Зарегистрирован: 16 дек 2011, 20:02
Репутация: 170
Ваше звание: Гуру
Откуда: Москва
Контактная информация:

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

Сообщение dab » 01 июл 2016, 07:26

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

klerk184
Участник
Сообщения: 71
Зарегистрирован: 23 июн 2016, 11:56
Репутация: 0

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

Сообщение klerk184 » 01 июл 2016, 07:34

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

Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

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

Сообщение Ariki » 01 июл 2016, 11:53

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

klerk184
Участник
Сообщения: 71
Зарегистрирован: 23 июн 2016, 11:56
Репутация: 0

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

Сообщение klerk184 » 01 июл 2016, 12:07

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

klerk184
Участник
Сообщения: 71
Зарегистрирован: 23 июн 2016, 11:56
Репутация: 0

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

Сообщение klerk184 » 04 июл 2016, 06:11

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

klerk184
Участник
Сообщения: 71
Зарегистрирован: 23 июн 2016, 11:56
Репутация: 0

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

Сообщение klerk184 » 04 июл 2016, 07:33

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

trir
Гуру
Сообщения: 5278
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1014
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

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

Сообщение trir » 04 июл 2016, 12:35


klerk184
Участник
Сообщения: 71
Зарегистрирован: 23 июн 2016, 11:56
Репутация: 0

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

Сообщение klerk184 » 04 июл 2016, 12:42

А причем тут сфера? у меня же вроде в плоскости.

trir
Гуру
Сообщения: 5278
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1014
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

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

Сообщение trir » 04 июл 2016, 12:59

система координат в WGS-84
http://gis-lab.info/qa/sphere-geodesic- ... oblem.html

Ответить

Вернуться в «MapInfo»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей