Переезд

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

Что это?

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

Оглавление

Разработка

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

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

Остались вопросы? Задайте их сообществу! Задать вопрос
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
30
Движение с Безье
Редкая штука в варкрафте. Но для начала бы неплохо интерполяцию Безье показать. Да и другие функции плавности.
Мне вообще не понятны, когда юзеры говорят используй "векторы".
Векторы упрощают сложные вычисления когда дело доходит до гравитации, ускорения, отскоков и трения. Просто пулять снаряды из точки A в точку B проще через полярки с параболой.
Пример офериста.
Спаибо, добавил в статью:
До них ещё дойдём.
Еще мне не понятны матрицы.
Ну это вообще на самое сладкое. Возможно. Им применение найти сложно именно в варкрафте.
27
Редкая штука в варкрафте. Но для начала бы неплохо интерполяцию Безье показать. Да и другие функции плавности
Красивая визуализация кривой-безье
Потом 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 раза отодвинуть или наделать больше точек. Так мне кажется, что чем больше точек, тем точнее кривая
30
Парабола не только дуга по z
Парабола это какраз дуга по z. И туда можно любую функцию засунуть, хоть того же Безье.
Думаю, что безье можно наделать в кучу точек. Но должен быть какой то шаблон точек? Или как?
При движении количество точек зависит только от скорости снаряда и периода таймера.
Я вот пример квадратичную безье использую, то дуга получается не такой широкой.
Самая популярная. Только вот кривым Безье вообще неважно, сколько точек.
Так мне кажется, что чем больше точек, тем точнее кривая
Ну так логично, чем ближе точки друг к другу, тем плавнее кажется движение.
27
nazarpunk, вот еще один пример. Относительные повороты
Это полезно. Как поворачивать несколько снарядов относительно чего то. Или строить чего. Была у меня тема создать симметричную точку относительно прямой. В данных есть коорды точки, и уравнение прямой ax+by²+c=0. И там не уверен, что правильно решил в вычислительноц геометрии. Я попробовал, дебажить, она неверно работает.
30
вот еще один пример. Относительные повороты
Я эту методу использую в своих прямоугольниках, чтоб развернуть их паралельно осям.
30
Была у меня тема создать симметричную точку относительно прямой.
У прямой есть угол AB. Нужно сначала найти кратчайшее расстояние от точки до прямой, в нашем случае это B. Потом просто повернуть точку на 𝜋 относительно B.
Загруженные файлы
38
У float ноль - это бесконечно малое. На бесконечно малое делить можно. Получаются +/-INF. Арифметика рациональных чисел никуда не делась

См пункт 3.1 habr.com/ru/articles/112953
18
нигде не видел, почему в Atan2 передают разницу координат
  local real dx = GetUnitX(tu) - GetUnitX(u)
  local real dy = GetUnitY(tu) - GetUnitY(u)
  local real angle = Atan2(dy, dx)
30
Vlod, ключевое слово почему. Вот ты сейчас на глаз быстро скажешь, какой угол получится, tu->u или u->tu?
18
Vlod, ключевое слово почему. Вот ты сейчас на глаз быстро скажешь, какой угол болучится, tu->u или u->tu?
Протестировать 2 минуты, в целом можно обернуть в функцию, но без интерфейсов и женериков остается сухой матан
30
Протестировать 2 минуты
Отличный план, Волтер. И как на основании этого более сложные вычисления делать? Тестировать 20 минут, 200, 2000?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.