Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2013, 15:11   #1
prostor7
 
Регистрация: 01.11.2013
Сообщений: 6
По умолчанию Принадлежит ли отрезок окружности в географической системе координат

Помогите решить задачу!

Условия задачи:
Отрезок задан двумя точками P0(x,y),P1(x,y)
Окружность задана центром С(x,y) и радиусом R
Надо узнать пересекает ли отрезок окружность в любой точке.
Система координат - географическая в градусах.
Радиус задан в метрах.

Пример:
P0.x:=51.754012;
P0.y:=36.202744;
P1.x:=51.752864;
P1.y:=36.201472;
C.x:=51.7545655080246;
C.y:=36.2031805515289;
R:=50;
prostor7 вне форума Ответить с цитированием
Старый 01.11.2013, 15:51   #2
simples
Форумчанин
 
Регистрация: 03.10.2013
Сообщений: 142
По умолчанию

Из головы:
1) ищем пересечение 2х прямых - 1ая отрезком задана, вторая - перпедикуляром к отрезку из центра окружности
2) если есть пересечение в п.1 - проверяем что оно внутри отрезка
simples вне форума Ответить с цитированием
Старый 01.11.2013, 16:04   #3
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

делается проще - проверяются обе точки отрезка на принадлежность кругу, очерченому исходной окружностью.

например так:

Код:
Если ((P0.X - C.X)^2 + (P0.Y - C.Y)^2 - R^2) * ((P1.X-C.X)^2 + (P1.Y-C.Y)^2 - R^2) < 0 Тогда
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 01.11.2013, 18:40   #4
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Цитата:
Сообщение от prostor7 Посмотреть сообщение
.. Система координат - географическая в градусах...
Географические координаты - разновидность сферических.
У вас где дело происходит - на плоскости или на сфере ?
type_Oleg вне форума Ответить с цитированием
Старый 06.11.2013, 14:16   #5
prostor7
 
Регистрация: 01.11.2013
Сообщений: 6
По умолчанию

Дело происходит на сфере. То есть на земном шаре
prostor7 вне форума Ответить с цитированием
Старый 06.11.2013, 18:42   #6
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Если на сфере, то это сферическая геометрия, а теорема Пифагора - для плоской, то есть Евклидовой геометрии.
Представьте например, что внутри этой вашей окружности находится северный полюс, и попробуйте посчитать по " плоским " формулам.
Во-первых, в качестве единиц измерения в сферической геометрии удобнее использовать не метры, километры, а градусы. В том числе и радиус окружности надо перевести в градусы . А лучше в радианы, потому что и в Excel и во всяких языках функции sin, cos ... питаются радианами.
Радиус окружности в радианах = R/R_Земли.
Расстояние между двумя точками на сфере (в градусах или радианах):
=arccos(sin(шир1)*sin(шир2)-cos(шир1)*cos(шир2)*cos(долг1-долг2))
type_Oleg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Точки в системе координат. Sheva95 Помощь студентам 0 10.04.2013 17:28
определить точка принадлежит окружности Karlen1990 Помощь студентам 17 12.07.2012 19:59
Определение координат точек на окружности DDiKey Помощь студентам 5 23.03.2012 21:11
отрезок и окружности. alerwert Паскаль, Turbo Pascal, PascalABC.NET 15 17.10.2011 17:02
Получение координат точек касательной к окружности Stilet Помощь студентам 2 01.08.2008 15:12