в примере с многоугольником можно чекнуть скока операции затрачивается?
Сложность алгоритма O(n). Ну а операции можно в коде посмотреть. Притом там есть частный случай, когда точка лежит на ребре. Его вероятность в живой природе стремится к нулю из-за округлений, так что можно смело удалить сэкономив такты процессора.
МрачныйВорон, деление на ноль возможно только в случае, когда прямая паралельна оси Y. Для этих случаев был написан специально обученный код:
// Прямая, параллельная оси X
if ya == yb then
set LinePointPerpendicularX = px
set LinePointPerpendicularY = ya
return
endif
// Прямая, параллельная оси Y
if xa == xb then
set LinePointPerpendicularX = xa
set LinePointPerpendicularY = py
return
endif
Да и поддержку мобилок я вроди завёз. Выравнивание по сетке какраз позволяет тестить такие случаи:
Зачем.. типа вот и вопрос с твоим последним примером с выпуклой оболочкой.
Да вот простой пример - тыкаешь жезлы и они связывают друг друга молнией, вычисляют принадлежность точки многоугольнику и долбят всех электричеством. Правда нужно ещё пересечение окружности с многоугольником сделать, но возвращаемся к предыдущему тезису - кому оно надо?
Геометрия в играх более глубокая тема чем может показаться, существуют разные способы решить одну и ту же задачу.
Не забывай о специфике варкрафта. У нас тут половина народа процент от числа не могут вычислить. Я уже молчу за lerp. Да и жасс не позволяет безболезненно создавать сложные структуры.
Здесь по классике. Если будет спрос, то и будем курить разные методы. Если никому не нужно, то и болт с ним.
Меня всегда бесили картинки в статьях. Смотришь на них и ничерта не понимаешь, а какие же здесь зависимости и как оно смотрится в динамике? Посему и решил сделать так, чтоб можно было самому точки подвигать и посмотреть как оно чё.
Например есть методы которые дают приблизительный угол
Зачем далеко ходить? В том же перпендикуляре есть более простая функция, которая вернёт его длину, а не вычислит точку падения на прямую. Но кому оно надо?
» WarCraft 3 / История мага Грейсена Херсена
» XGM — Премия года / Премия 2023 года
» WarCraft 3 / Работа с нативными функциями
» XGM Конкурсы / Большой Турнир Ландшафтеров 2023
Ред. nazarpunk
» WarCraft 3 / Геометрия: Интерактивная статья
» WarCraft 3 / Геометрия: Интерактивная статья
» WarCraft 3 / История мага Грейсена Херсена
» WarCraft 3 / Геометрия: Интерактивная статья
Ред. nazarpunk
» WarCraft 3 / История мага Грейсена Херсена
» WarCraft 3 / Геометрия: Интерактивная статья
» XGM Конкурсы / Большой Турнир Ландшафтеров 2023
Ред. nazarpunk
» WarCraft 3 / Геометрия: Интерактивная статья
Ред. nazarpunk
» WarCraft 3 / Геометрия: Интерактивная статья
» WarCraft 3 / Геометрия: Интерактивная статья
» WarCraft 3 / Геометрия: Интерактивная статья
» WarCraft 3 / Visual Studio Code: ujass
Ред. nazarpunk
» WarCraft 3 / Геометрия: Интерактивная статья
Ред. nazarpunk
» Game Dev / Hardcore - это больше чем сложность
» WarCraft 3 / Геометрия: Интерактивная статья
» WarCraft 3 / Геометрия: Интерактивная статья
» XGM Team / Онлайн-инструменты для геймдев и моддинг арта
» WarCraft 3 / Геометрия: Интерактивная статья
Ред. nazarpunk
» WarCraft 3 / Геометрия: Интерактивная статья
» WarCraft 3 / Геометрия: Интерактивная статья
Ред. nazarpunk
» XGM Team / Онлайн-инструменты для геймдев и моддинг арта
GIF 337KB
APNG 379KB