Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 13

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

Спасибо за лестный отзыв)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации