Раздел:
Триггеры и объекты

Что это?

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

Оглавление

Разработка

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

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

`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
27
9 месяцев назад
Отредактирован MpW
0
Чтоб можно было наглядно посмотреть, что она делает, освежить память и использовать.
Для этого и надо сделать несколько примеров с гифками.😉
0
29
9 месяцев назад
0
МрачныйВорон, примеров чего?
1
27
9 месяцев назад
Отредактирован MpW
1
Заказ на работу
nazarpunk, различных движении. Если нуб совсем тупой.
Прямое движение 2d
Прямое мгновеное движение 2d (время таймера снижено, частота периода увеличено)
Прямое ускоренное движение 2d (пример ускорения)
Прямое замедленное движение 2d (пример замедления)
Движение к цели 2d
Движение по кругу 2d
Движение по спирали 2d
Движение по кругу с угловым ускорением 2d
Можно было кнопочки добавить, чтобы изменять время таймера, скорость, ускорение, угол, угловая скорость, угловое ускорение. Пауза. Устанлвка снарядов: Кол-снарядов
Прямое движение 3d с учетом ландшафта
  • настройка dummy. Если брать его за снаряд. Когда он летит, он может не всегда принимает высоту нужную. Особенно над водой, под водой. это проще заменить эффектом
  • учет столкновении с препятствием, об стену и пр.
  • в 3d появляется 2 угол, это наклон над поверхностью. Можно какие-нибудь вводящие функции
Движение с Безье
Постепенно переходить к сложному, там от полярок к векторам, кватерионам.
Тут много еще чего добавить. Это еще не все. Было бы интересно засмотреться. Любо смотрелось
Мне вообще не понятны, когда юзеры говорят используй "векторы". Если они то же самое ичпользуют, только таймером изменяем. Пример офериста. Я понял как там. Вы имеет в виду систему векторов? Создается вектор, т.е. по простому это функц с вводными данными типа координат точки x,y,z. Это вектор? Мне кажется нет. Или dx,dy,dz проще? А где же позиция юнита? Это мы к нему вектор приделываем для удобства. Ну как пример статьи офериста подошел. Тут уже меняется способ работы, привычные полярки уходят. Просто неудобно зачем менять. Нету примеров, где вам удобно это юзать. Наверно нужно сравнение полярок и системы векторов. Типа это эффективно, меньше вычислении, меньше кода. Да ребят?
Еще мне не понятны матрицы. Таблицы эти. Это в кватерионах и проеб полный
И пр штучки дабы понять пользователю. Был хороший сборник всех примеров. И юзер понял бы какой снаряд ему нужен.😅 я шучу, это надо много времени 😕
1
29
9 месяцев назад
1
Движение с Безье
Редкая штука в варкрафте. Но для начала бы неплохо интерполяцию Безье показать. Да и другие функции плавности.
Мне вообще не понятны, когда юзеры говорят используй "векторы".
Векторы упрощают сложные вычисления когда дело доходит до гравитации, ускорения, отскоков и трения. Просто пулять снаряды из точки A в точку B проще через полярки с параболой.
Пример офериста.
Спаибо, добавил в статью:
До них ещё дойдём.
Еще мне не понятны матрицы.
Ну это вообще на самое сладкое. Возможно. Им применение найти сложно именно в варкрафте.
1
27
9 месяцев назад
Отредактирован MpW
1
Редкая штука в варкрафте. Но для начала бы неплохо интерполяцию Безье показать. Да и другие функции плавности
Красивая визуализация кривой-безье
Потом Hate фаербол пускал по безье. rsfgd сделал пример. Сам в этом не разбираюсь, но формулы есть, тут все просто
Можно найти еще какое то применение движению? Но я видел, что некоторые не так применяют по скилам. Двигаются по кривым, словно там что-то еще меняется. Может меняются крайние точки? дико они сложны в применении. Контроль сложный. Время нужно.
Просто пулять снаряды из точки A в точку B проще через полярки с параболой.
Парабола не только дуга по z. Многие здесь привыкли ее использовать так. в действительности это так, 3-я поверхность
Ну это вообще на самое сладкое. Возможно. Им применение найти сложно именно в варкрафте.
Пытался я координаты мировые в экранные конвертировать. Там матрицы были. Ужас. 11, 21 это запомнилось)) плоскости и пр. Формулы были готовые. Но я не смог

примеры безье
линейная интерполяция = 1+1 - прямой отрезок
x = (1-t)*P0x + t*P1x
y = (1-t)*P0y + t*P1y
0 << t << 1
квадратичная интерполяция = 1+2+1 - кривая Безье по 3 точкам
x=(1-t)^2*P0x + 2*t*(1-t)*P1x + t^2*P2x
y=(1-t)^2*P0y + 2*t*(1-t)*P1y + t^2*P2y
0 << t << 1
кубическая интерполяция = 1+3+3+1 - кривая Безье по 4 точкам
x=(1-t)^3*P0x + 3*t*(1-t)^2*P1x + 3*t^2*(1-t)*P2x + t^3*P3x
y=(1-t)^3*P0y + 3*t*(1-t)^2*P1y + 3*t^2*(1-t)*P2y + t^3*P3y
0 << t << 1
t - время в процентах от 0 до 1.00
Думаю, что безье можно наделать в кучу точек. Но должен быть какой то шаблон точек? Или как?
Я вот пример квадратичную безье использую, то дуга получается не такой широкой. Нужно ли крайний угол еще в 2 раза отодвинуть или наделать больше точек. Так мне кажется, что чем больше точек, тем точнее кривая
0
29
9 месяцев назад
0
Парабола не только дуга по z
Парабола это какраз дуга по z. И туда можно любую функцию засунуть, хоть того же Безье.
Думаю, что безье можно наделать в кучу точек. Но должен быть какой то шаблон точек? Или как?
При движении количество точек зависит только от скорости снаряда и периода таймера.
Я вот пример квадратичную безье использую, то дуга получается не такой широкой.
Самая популярная. Только вот кривым Безье вообще неважно, сколько точек.
Так мне кажется, что чем больше точек, тем точнее кривая
Ну так логично, чем ближе точки друг к другу, тем плавнее кажется движение.
1
27
9 месяцев назад
1
nazarpunk, вот еще один пример. Относительные повороты
Это полезно. Как поворачивать несколько снарядов относительно чего то. Или строить чего. Была у меня тема создать симметричную точку относительно прямой. В данных есть коорды точки, и уравнение прямой ax+by²+c=0. И там не уверен, что правильно решил в вычислительноц геометрии. Я попробовал, дебажить, она неверно работает.
1
29
9 месяцев назад
Отредактирован nazarpunk
1
вот еще один пример. Относительные повороты
Я эту методу использую в своих прямоугольниках, чтоб развернуть их паралельно осям.
0
29
9 месяцев назад
Отредактирован nazarpunk
0
Была у меня тема создать симметричную точку относительно прямой.
У прямой есть угол AB. Нужно сначала найти кратчайшее расстояние от точки до прямой, в нашем случае это B. Потом просто повернуть точку на 𝜋 относительно B.
Загруженные файлы
0
37
9 месяцев назад
0
У float ноль - это бесконечно малое. На бесконечно малое делить можно. Получаются +/-INF. Арифметика рациональных чисел никуда не делась

См пункт 3.1 habr.com/ru/articles/112953
0
18
9 месяцев назад
0
нигде не видел, почему в Atan2 передают разницу координат
  local real dx = GetUnitX(tu) - GetUnitX(u)
  local real dy = GetUnitY(tu) - GetUnitY(u)
  local real angle = Atan2(dy, dx)
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.