Изменения

Перейти к: навигация, поиск

Пересечение отрезков на сфере

1009 байт добавлено, 23:15, 13 мая 2014
Проверка на пересечение
* <tex>sign(|A|) < 0</tex> тогда точка <tex>c</tex> лежит под плоскостью, образованной точками <tex>a</tex> и <tex>b</tex>.
* <tex>sign(|A|) = 0</tex> тогда точка <tex>c</tex> лежит на плоскости, образованной точками <tex>a</tex> и <tex>b</tex>.
 
[[Файл:Sphere2.jpg|right|1000|thumb|Тетраэдр полученный из концов отрезков. В данном случае грань ADC отсекает его от центра сферы.]]
Проверим лежат ли точки в одной плоскости, если лежат проведем эту плоскость, пересечение сферы и этой плоскости это окружность, на которой лежат 4 точки(начала и концы отрезков).Далее необходимо выбрать из 2ух отрезков любой, посчитать поворот его концов относительно центра окружности, а дальше сравнить поворот оставшихся точек, если хотя бы одна точка из второго отрезка попадает в диапазон значений между концами выбранного нами отрезка, то перейдем к плоскостипрямые пересекаются, иначе необходимо взять другой отрезок и проверка на пересечение прямых переходит проверить это же утверждение для него(так как 1ый взятый нами отрезок мог содержаться во втором), в разбор случаевслучае если оба случая не дали положительного результата - отрезки не пересекаются
Иначе рассмотрим следующий алгоритм.
91
правка

Навигация