Переезд

Разработка текущей статьи по ссылке прекращена в связи с переходом на новый движок документации. Новая статья доступна здесь.

Что это?

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

Оглавление

Разработка

Статья находится в разработке, так что вам выпала уникальная возможность лайкать и комментировать задавать вопросы, которые будут впоследствии освещены в статье. На данный момент, список пожеланий выглядит так:
  • Двигать по прямой, (нахождение угла между точками (два способа через координаты и через atan2))
  • Движение к цели (каждый раз находить угол)
  • Движение по кругу
  • Движение по параболе (для прыжков)
  • Что делать если нужно не искать точку внутри фигуры а пересечение с кругами заданного радиуса, квадратами и многоугольниками

Полезные ссылки

Остались вопросы? Задайте их сообществу! Задать вопрос
`
ОЖИДАНИЕ РЕКЛАМЫ...
30
Вышла новая версия!
Прокрутить к ресурсу
Новый код для сетки оказался прекрасен. Был переписан следующий блок:
Загруженные файлы
30
Вышла новая версия!
Прокрутить к ресурсу
Продолжаем переход на новый код сетки. Теперь можете оценить:
Загруженные файлы
27
nazarpunk, было бы классно показать единичный тригонометрический круг с разными функц sin con acos asin tan cotan и пр. Показать за что отвечают.
30
МрачныйВорон, тысячи их, и что-то мне не хочется такой треш рисовать.
Да и какие задачи он решит в рамках игры?
Загруженные файлы
27
Пример такой

Поймут, что такое тригонометрические функц. Будут становится рядовыми бойцами геометрии. Когда челу объясняешь как направлять по дуговой, он мне пишет: "братиш, я не понимаю такое, можно формулы дуги, пример".

nazarpunk, то что их рисуют не означает, что кто то поймет сразу. В школах преподают плохо, и учителям и ученикам посрать на эти формулы. А когда эти функции анимируют или визуализируют, он поймет
30
МрачныйВорон, пока в планах объяснить то, что по кд юзается. Потом уже раскрывать подробности.
30
Вышла новая версия!
Прокрутить к ресурсу
Переход на новую сетку продолжается. Можете оценить:
Загруженные файлы
18
Интерактивность шикарная

Геометрия в играх более глубокая тема чем может показаться, существуют разные способы решить одну и ту же задачу. Например есть методы которые дают приблизительный угол и этого бывает достаточно когда мы говорим о высоконагруженых вычислениях, или есть методы которые дают нахождение точки в многоугольнике за константное количество вычислений с определенной точностью
30
Геометрия в играх более глубокая тема чем может показаться, существуют разные способы решить одну и ту же задачу.
Не забывай о специфике варкрафта. У нас тут половина народа процент от числа не могут вычислить. Я уже молчу за lerp. Да и жасс не позволяет безболезненно создавать сложные структуры.
Здесь по классике. Если будет спрос, то и будем курить разные методы. Если никому не нужно, то и болт с ним.

Интерактивность шикарная
Меня всегда бесили картинки в статьях. Смотришь на них и ничерта не понимаешь, а какие же здесь зависимости и как оно смотрится в динамике? Посему и решил сделать так, чтоб можно было самому точки подвигать и посмотреть как оно чё.

Например есть методы которые дают приблизительный угол
Зачем далеко ходить? В том же перпендикуляре есть более простая функция, которая вернёт его длину, а не вычислит точку падения на прямую. Но кому оно надо?
27
В том же перпендикуляре есть более простая функция, которая вернёт его длину, а не вычислит точку падения на прямую. Но кому оно надо?
nazarpunk, кому надо? Было интересно сравнить
Не забывай о специфике варкрафта. У нас тут половина народа процент от числа не могут вычислить. Я уже молчу за lerp. Да и жасс не позволяет безболезненно создавать сложные структуры.
Здесь по классике. Если будет
Поэтому я и говорю, что нужны примеры с гифками, код. Юзер сразу захочет учиться. Пример, я не знаю, что такое lerp? это безье? Оферист вроде такое показывал. Но, где это применить, как его применять. Зачем.. типа вот и вопрос с твоим последним примером с выпуклой оболочкой. Я вот нашел бы, пример с объединением многоугольнов, захват территории. Хотя это не так должны соединяться. А обычный юзер вара где найдет?
30
кому надо?
Надеюсь, что этим замечательным ребятам пригодится.
Поэтому я и говорю, что нужны примеры с гифками, код.
Если заглянуть в репозиторий, то можно заметить начало работы над примерами. Но времени катастрофически не хватает.
Зачем.. типа вот и вопрос с твоим последним примером с выпуклой оболочкой.
Да вот простой пример - тыкаешь жезлы и они связывают друг друга молнией, вычисляют принадлежность точки многоугольнику и долбят всех электричеством. Правда нужно ещё пересечение окружности с многоугольником сделать, но возвращаемся к предыдущему тезису - кому оно надо?
Загруженные файлы
30
Вышла новая версия!
Прокрутить к ресурсу
Продолжаем улучшать статью. Помимо новой сетки улучшили описание:
Загруженные файлы
30
Вышла новая версия!
Прокрутить к ресурсу
Новый код сетки был улучшен. Добавлена возможность выравнивания точек по сетке. Можете оценить:
Загруженные файлы
27
  1. Молодые варкрафтеры знают, что на ноль нельзя делить, иначе вар вылетит? Или уже предусмотрели?
  2. сравнение с действительными числами
В во всех функц надо проверки доп ввести на всякий случай.
30
МрачныйВорон, деление на ноль возможно только в случае, когда прямая паралельна оси 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
Да и поддержку мобилок я вроди завёз. Выравнивание по сетке какраз позволяет тестить такие случаи:
Загруженные файлы
27
nazarpunk, насчет мобилки, тут не всегда все объекты визуализированы в одном окне, они бывают за пределами окна. Поэтому не всегда могут быть видны, я кое-как в примере с перпендикуляром точку С вращением в окно вернул. Также как и с примером пентаграммы, где пент становится таким большим, что улетает за пределы. Конечно, я справился, и вернул пентагон на место
Вот сразу открыл по ссылке, захожу, виду отрезок AВ и все. Точка С за пределами экрана. Конечно, я перетянул точку С
30
МрачныйВорон, мне не сильно удобно под мобилки тестить, но сделаю сетку для них чуть меньше.
Скрипт кстати цепляет тупо за ближайшую точку к пальцу. Не обязательно её выцеливать.
30
Вышла новая версия!
Прокрутить к ресурсу
Изменён масштаб бля мобильной версии и продолжаем переписывать на новый код сетки:
Загруженные файлы
27
nazarpunk, в примере с многоугольником можно чекнуть скока операции затрачивается? Прикинь, если мне надо будет чекнуть множества точек на попадание в многоугольник. Скока это сожрет операции

Масштаб для всех примеров?))
30
в примере с многоугольником можно чекнуть скока операции затрачивается?
Сложность алгоритма O(n). Ну а операции можно в коде посмотреть. Притом там есть частный случай, когда точка лежит на ребре. Его вероятность в живой природе стремится к нулю из-за округлений, так что можно смело удалить сэкономив такты процессора.

Масштаб для всех примеров?))
Там много возни с этими вашими масштабами, стоит ли на них тратить время?
30
Вышла новая версия!
Прокрутить к ресурсу
Использован универсальный Pointer Events вместо устаревшего зоопарка событий.
Наконец-то окончен переход на новый код и удалён старый. Можете оценить:
Загруженные файлы
Чтобы оставить комментарий, пожалуйста, войдите на сайт.