Separating Axis Theorem (Теорема о разделяющей оси) (комментарии)
Это сообщение сгенерировано автоматически.
>Separating Axis Theorem для двух выпуклых объектов можно сформулировать так: два выпуклых объекта пересекаются тогда и только тогда, когда существует плоскость(для двумерного случая - прямая), такая, что одна геометрия лежит по одну ей сторону, а другая - по другую.
есть мнение, что это неверно. прямая х=0 разеляет два круга радиусами 1, лежащих на оси х на расстоянии 3 от начала координат. при этом, очевидно, эти круги не пересекаются.
Не надо так перекручивать теоремы.
Два выпуклых объекта не пересекаются тогда и только тогда, когда существует плоскость (для двумерного случая - прямая), такая, что проекции геометрий на эту плоскость (прямую) не пересекаются.
Равносильно существованию плоскости (прямой), которая разделяет объекты.
Спасибо, исправил.
Для двух непересекающихся отрезков, лежащих на одной прямой на плоскости, это неверно, потенциальная разделяющая ось одна - нормаль к прямой, но проекции на нее совпадают - одна точка
1Man1
для двух выпуклых объектов
> Для двух непересекающихся отрезков
найди отличия. И да для двух не пересекающихся отрезков существует такая плоскость/прямая проекция на которую даст не пересекающие отрезки. С чего ты решил что если существует такая плоскость/прямая на которой проекции пересекаются, то не существует обратной?
Aroch
> найди отличия
Отрезок выпуклый по определению, к твоему сведению
> для двух не пересекающихся отрезков существует такая плоскость/прямая проекция на которую даст не пересекающие отрезки
Ясное дело. Речь о том, что во всех туториалах предлагают в качестве разделяющих осей проверять только нормали к граням для 2D
> С чего ты решил что если существует такая плоскость/прямая на которой проекции пересекаются, то не существует обратной?
Для пересекающихся обьектов такой прямой не существует
1Man1
> Отрезок выпуклый по определению, к твоему сведению
в контексте статьи он не является выпуклым объектом, к стандартному определению о отсутствии внутренних пересечений отрезков для любых комбинаций с вершинами, нужно добавлять способность задать объект строго определенным конечным количеством плоскостей/прямых. И очевидно что ни точки, ни отрезки, ни круги, сферы и подобные объекты не имеет смысла рассматривать в общем случае и поиск подходящей плоскости/прямой может быть затратней чем альтернативные решения. Для отрезков таких прямых не так и много кстати, сами отрезки и их нормали. Но частное решение для отрезков скорее всего будет быстрее.
> Ясное дело. Речь о том, что во всех туториалах предлагают в качестве
> разделяющих осей проверять только нормали к граням для 2D
потому что их конечное количество.
> Для пересекающихся обьектов такой прямой не существует
а для не пересекающихся существует, и твоё утверждение что:
Для двух непересекающихся отрезков, лежащих на одной прямой на плоскости, это неверно
ложно.
Суслик вернись.
Aroch
> к стандартному определению о отсутствии внутренних пересечений отрезков для любых комбинаций с вершинами, нужно добавлять способность задать объект строго определенным конечным количеством плоскостей/прямых
Теорема Минковского о разделяющей оси сформулированна для любых выпуклых фигур.
Выпуклый многоугольник же можно представить как пересечение наборов полуплоскостей, заданных ур-ями (p,n)<=d, к отрезку это также относится
> потому что их конечное количество
Глупости, надо проверить все оси, которые могут быть разделяющими
> ложно
Истинно, единственная нормаль не является разделяющей осью
А ты не соображаешь в геометрии и читаешь плохо
1Man1
> Теорема Минковского о разделяющей оси сформулированна для любых выпуклых фигур.
и я тебе уже объяснил что в практическом смысле она проигрывает специальным решениям для ряда фигур для которых количество ограничивающих плоскостей может быть бесконечное количество.
> к отрезку это также относится
вот и задай его этими плоскостями а не единственной нормалью, если ты еще не осознал что нормаль не задает отрезок.
> Глупости, надо проверить все оси, которые могут быть разделяющими
давай проверяй для сферы все оси, желаю удачи с этим.
> Истинно, единственная нормаль не является разделяющей осью
причем тут единственная нормаль? У отрезков нормалей две (вторая с противоположным знаком), а разделяющих осей и того больше.
> А ты не соображаешь в геометрии и читаешь плохо
предлагаю тебе это повторить стоя перед зеркалом.
Aroch
> и я тебе уже объяснил что в практическом смысле она проигрывает специальным решениям для ряда фигур
Нифига ты не "обьяснил", не ври, сам ничего не знаешь, а туда же лезешь. Я привел отрезки, как контпример к теореме, вроде понятно написал, но обязательно найдется нечитатель, пытающийся прицепиться к словам
> вот и задай его этими плоскостями
Полуплоскостями, неуч, - легко:
Система
(p,n)<=d
(p,-n)<=-d
задает прямую, добавив еще 2 полуплоскости с прямыми, проходящими через концы, - получим отрезок.
Также можно взять узкий треугольник, устремив его толщину к 0, в пределе получим отрезок, нормали сторон стремятся к нормали к отрезку
> давай проверяй для сферы все оси, желаю удачи с этим
SAT утверждает, что для выпуклых непересекающихся фигур существует разделяющая ось, следовательно, чтобы доказать пересечение, надо доказать несуществование такой оси, а для этого надо перебрать все возможные кандидаты.
Ты и в логику тоже не можешь
> У отрезков нормалей две
Лол, две противоположных вектора задают одну и ту же прямую
> предлагаю тебе это повторить стоя перед зеркалом.
Иди подмойся, гомонитарий
1Man1
> добавив еще 2 полуплоскости с прямыми, проходящими через концы, - получим отрезок
Вот нормали к этим полуплоскостям и будут разделяющими осями.
Т. е. для объектов, заданных как пересечение полуплоскостей, теорема работает.
> для этого надо перебрать все возможные кандидаты.
Тебя =A=L=X= покусал? Перебрать бесконечное количество объектов невозможно, логика так не работает.
В математике все доказательства содержат исключительно конечное количество шагов.
}:+()___ [Smile]
> Перебрать бесконечное количество объектов невозможно
От тебя не ждал таких заявлений. Прикажешь отменить интегрирование, дифференцирование, счисление рядов и пределов, мат индукцию, в общем всю математику?
Мда, походу после ухода Суслика форум глупеет 😂
> Вот нормали к этим полуплоскостям и будут разделяющими осями
А я думаю, что нет, можно построить пример и для многоугольников ненулевой площади.
Я шел с другой стороны - ближайшими двумя точками двух многоугольников могут быть:
1. Вершина и основание перпендикуляра из нее на сторону другого многоуг - тогда разделяющая ось = нормаль
2. Две вершины - в этом случае разделяющая ось - например перпендикуляр к линии между ними, и причем тут тогда нормали? В инете программистишки копируют друг у друга бездоказательную лажу
1Man1
> задает прямую, добавив еще 2 полуплоскости с прямыми, проходящими через концы,
> - получим отрезок.
ну и почему ты их не используешь? И что тебе не понятно на моем рисунке? О чем ты еще споришь? Как в такой ситуации можно продолжать спорить, когда тебя тыкают носом что вот <censored> смотри сюда, видишь проекции не пересекаются?