Пересечение отрезка с окружностью
Условия задачи:
Отрезок задан двумя точками 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;
Уже обыскался...
Найти алгоритм пересечение с окружностью не проблема, есть решение:
нужно подставить координаты концов отрезка(;) (;) в уравнение окр-ти x^2+y^2=R^2
если ^2+^2 или ^2+^2 будет меньше R^2, то хотя бы одна точка отрезка лежит внутри окр-ти, если же оба условия не выполняются то может быть два случаея:
либо весь отрезок лежит вне окр-ти, либо он пересекает окр-ть
в первом случае все понятно. а во втором нужно решить систему, где первое ур-ние - ур-ние окр-ти, а второе уравнение прямой проходящей через две точки (;) (;)
, проблема возникает когда подставляем используем градусы и метры в радиусе окружности
Выведи формулы аналитической геометрии для случая сферической поверхности, а не плоскости.
Сферическая система координат
Географические координаты
В частности сферическая окружность – множество точек сферы, равноудаленных от заданной точки Р.
Хороший справочник по математике Корн & Корн (можно скачать здесь).
C.y:=36.2031805515289;
R:=50;
Система координат - географическая в градусах.
Радиус задан в метрах.
Отрезок тоже.
Все решаемо.
Не все так однозначно:
1. То что все нарисовано на сфере, явно в задании не указано (это наша гипотеза).
2. Непонятно, отрезок прямой или кусок круга не указано.
3. Если кусок круга, то какого - большого (проведенного через центр сферы), или произвольного (секущая плоскость проходит через две данные точки, но не проходит через центр сферы).
4. Иначе непонятно, как скрестить координаты в градусах с радиусами в метрах.
Отрезок должен быть сферическим (Прямыми на сфере считаются большие окружности. Если две точки принадлежат большой окружности, то длина меньшей из дуг, соединяющих эти точки, определяется как сферическое расстояние между этими точками, а сама дуга – как сферический отрезок.) Иначе говорить, что он задан -- бессмысленно. Кроме случая обычного прямого отрезка, но тогда он окажется под поверхностью сферы).
Решать можно либо в сферических координатах, либо можно взять проекцию на удобную плоскость и решать в декартовых.
Отрезок лежит на сфере Земли
Отрезок лежит в плоскости проведенной через центр сферы?