Pull to refresh

Comments 13

Посмотрел гитхаб, код писать ты умеешь. Лови плюс в карму. :)

Не моя тема ни разу, но прочитал не без удовольствия

Теперь разберём все возможные случаи при проверке пересечений.

1. Обе точки внутри фигуры. Самый простой случай, просто добавляем их в контактный буфер

2. Только одна точка внутри фигуры. Вот это уже сложный случай. Нам необходимо проверить с каким именно ребром произошло пересечение, а после найти точку, в которой произошло пересечение. Когда речь пойдет о коде, я расскажу как это сделать.

А как же такой случай?

Писал алгоритм вместе со статьёй, вероятно забыл указать этот случай в теории, однако мой код учитывает и его.

Спасибо за указание на недочёт, сейчас поправлю.

Какая интересная проблема!
Хотелось бы еще почитать про математическую сторону алгоритма и оценку сложности. Быть может кто-нибудь напишет.

Вообще именно этот алгоритм n², однако я линейным алгоритмом сразу "удаляю" все точки, что не находятся в плоскости контакта, что сильно сокращает количество вычислений.

Когда был на младших курсах универа, тоже решал такую проблему, нашел простой и интересный алгоритм, который основан на теореме о разделяющей гиперплоскости. На хабре не было информации по этому алгоритму, поэтому даже написал статью

Похоже на алгоритм SAT. И насколько мне известно, его задача только лишь определить наличие коллизии, а в модифицированной версии разрешить её. Моей же задачей стал именно поиск этих точек контакта, причём всех, а не только первой попавшейся.

Спасибо за статью, мне как движко‑писцу подобный материал весьма интересен)

P.S. Что-то мне подсказывает что в классе с виртуальными методами, деструктор также должен быть виртуальным.

По опыту - лучше использовать библиотеку Eigen, чем писать свою матричную математику. Ее можно использовать просто как header-only, время компиляции может увеличиться, но это потенциально избавит от многих проблем.

Разве я где-то говорил о матрицах в своей статье?

В любом случае я давно уже перешёл на glm для матриц.

Возможно вы глянули мой гитхаб и увидели там самописные матрицы. Писал я их давно и больше из интереса к данной теме. Позже же сменил на нормальные. Просто лежат они в ветке физики, которая уже на более чем 20 коммитов оверхед. Нужно будет вскоре её соединить с мейном, чтобы реже возникали такие вопросы.

Sign up to leave a comment.

Articles