Как линейные уравнения превращаются в параметрические
Линейное уравнение описывается чаще всего даже в школьной программе описывается как
1️⃣_ _y = k * x + b
типа k — коэфициент наклона, помогающий понять, на сколько изменяется y по сравнению с изменением по x,
а b — параметр смещения, "начальный" отсчёт для _y _при x=0.
получается прямая зависимость y(x), как у меня от мандарин зимой.
И вроде бы всё хорошо, но когда мы начинаем например рисовать круги, выясняется что там так просто не получится. Формула окружности радиусом r с центром в точке (h, k) задаётся как
2️⃣_ _(x - h)² + (y - k)² = r²
Получается в каком-то смысле как разница между императивным и декларативным стилем в программировании:
для уравнения прямой 1️⃣ мы получаем инструкцию как "зная x, получить y", а для круга у нас "ну это какие-то пары точек (x,y), которые удовлетворяют этому вот выражению 2️⃣
Прикол в том что (продолжая растягивать эту метафору, это как в декларативных языках программирования в итоге всё компилируется и выполняется тем же машинным кодом что и для императивного стиля), тут можно свести всё к понятно параметризации, перейдя в другую систему координат:
x = h + r * cos(t)
y = k + r * sin(t)
если подставить эти значения в исходное выражение 2️⃣, должно получиться тождество. Если у вас есть сомнения, советую убедиться
И это в целом открывает много интересного и с точки зрения что теперь мы можем задать "конкретную точку на круге", и увести рассуждение в другие системы координат, но недооценённый здесь ход это вернуться назад, к прямой. И там уже посмотреть "а как похожий трюк провернуть с здесь?". Можно прям совсем в лоб это сделать:
x = t
y = k * t + b
И у нас по своей сути получается мостик для "перемещения по прямой" и связь с переходами к кругу. Отсюда ноги растут у примерно всех физических движков для анимации, компьютерных игр, создания сложных визуальных эффектов да и вообще по сути симуляции каких-то физических процессов, везде будет похожий принцип: наличие "общей" переменной для итерации, через которую мы можем выразить интересующую нас связь. Такая свобода мне по душе 😏
Как можно догадаться, это я на самом деле опять вспомнил про эллиптические кривые и их магию, а прямая мне нужна для того чтобы пробросить этот красивый мостик для их рассмотрения. Мысль напоследок (опять же, её можно вытащить из рассуждений об окружности), что если мы ввели переменную t, то нам становится в целом не так важно, x или y и нас "основная переменная", а значит мы можем уравновесить оба уравнения, чтобы они по своей сути были в чём-то похожи:
x = m * t + a
y = k * t + b
А чтобы продолжить безудержное веселье, предлагаю подумать о том, как отсюда сделать траекторию движения вертикально "прыгающей" лягушки.