TECHNICAL SHIT 1

TECHNICAL SHIT 1

Sovka Ivanov

Числовые последовательности.

Это просто упорядоченный набор чисел, нофинг сложного хер. Их заебундель в том, что они очень применимы к индексированным объектам, а индексированы ВСЕ объекты в любом софте. То есть у любой кучи объектов берёшь их индекс, добавляешь в него огромное количество арифметики, логики, условий через иф-елсе и через тернарные операторы, ТРИГОНОМЕТРИИ! Для вязкости, оптимизации сверху. Всё это пихается в какой-нибудь параметр. Потом ищутся ошибки и дебажатся на балконе. Для старта можно взять последовательность натуральных чисел, затем модифицировать её тремя арифметическими операциями: сложение, умножение, деление с остатком. Смотри как они работают. К натуральным числам я ещё добавил ноль, потому что мы тут с тобой немного прогеры сейчас.

Сложение даёт оффсет — обычный сдвиг влево-вправо всей последовательности. Умножение даёт масштаб — каждый член последовательности увеличивается или уменьшается в насколько ты там умножил. Деление с остатком даёт простое человеческое зацикливание. Чисто этого достаточно, чтоб замутить свой клонер например. И это блять арифметика онли, 1-2 класс школы. Прикинь тогда, что с вышматом можно творить.

просто дублируешь слои — а они сами на место встают

Конечно можно юзать не только арифметические операции. Вот ниже пример, где в координату x идёт просто индекс (умноженный на чонить), а в y идёт ебещий косинус, у которого индекс засунут в фазу. Таким образом каждый объект колышется со своим собственным сдвигом по фазе, и получено снова простым дублированием.

И не только в позишен можно эти последовательности пихать, а в любой параметр вообще. Ниже то же самое, только вместо координаты x индекс записан в ротейшен.

Зачем я затронул числовые последовательности. Да хуй его знает. В общем знай ещё, что у них есть две важных характеристики: сходимость и ограниченность. Сам погугли на досуге, особенно примеры повдупляй, там захватывающе. На кивипедии не гугли, там всегда всё страшно и кишит терминами.

Интерполяция.

Общее определение говорит про нахождение промежуточного значения по известным. Но в общем просто перевод числа из одного диапазона в другой. Для старта лучше рассмотреть перевод из промежутка [0, 1] в любой [x₁, x₂].

0.5 серединка там — 15 серединка здесь. То ж самое про 0.75

Формула вообще интуитивна — это типа мапинг промежутка [0, 1] на промежуток [x₁, x₂]. Сначала идёт масштаб до нужного размера — это умножение на (x₂ - x₁). Затем делается оффсет до нужного старта — это прибавление x₁. Теперь можно и в обратную сторону, то есть всё сделать ровно наоборот: оффсетнуть до нуля — вычесть x₁, и масштабнуть до единичного размера — разделить на собственный размер (x₂ - x₁). Если эти две формулы скомпоновать в одну — получится перевод числа из любого промежутка в любой другой. Так работают кифреймы например: в одном месте таймлайна t1 поставил ключик со значением хз1, в месте t2 поставил хз2. И пока время идёт от t1 до t2, значение идёт от хз1 до хз2. Время тупо интерполируется в значение. И снова одна лишь обоссанная арифметика из начальной школы, сложения да умножения.

Хуль тут непонятного.

Кейфремы иногда придётся процедурно имитировать или генерить, например в подобных случах:

Прикинь в такое правки вносить ручками.

Безье.

Интерполировать можно и целые наборы чисел — ну а хуль, кто тебе запретит. Я щас координаты точек имел в виду. Можно взять свой личный слайдер/параметр, задать ему границы [0, 1], дёргать его в своё удовольствие, и интерполировать в промежуток двух точек.

И раз уж это так просто, то можно взять три точки, и интерполировать t в промежуток от первой до второй точки и в промежуток от второй до третьей. Получится две результирующие точки, в которые можно снова залерпить t.

и финальный результат будет лежать на интересной кривой.

И ещё раз усложнить, потому что почему бы и нет мать его ёб, один раз живём. Сделать набор из четырёх точек, получится три промежутка для интерполяции. И три результата интерполяции. И эти результаты образуют в свою очередь два промежутка, ну и вообще ситуация получается как в предыдущем абзаце.

Тут по формулам уже легче понять, чем по этому визуальному салату.

Кривая стала чуть интереснее, и теперь можно немного изменить UI.

Просто провёл линии от крайних точек к средним.

Делать кустомные безьехи тебе понадобится уже прям в очень нетривиальных случаях, но просто понимать как они работают может пригодиться хотя бы для того, чтоб не сцыковать что-нибудь с ними процедурить. Безье — каскада интерполяций, т.е. сложения и умножения онли. Снова блять.

один из моих примерчиков.

Месседж.

Не надо бояться математики, во-первых она логична и понятна (сразу же после того как разберёшься), во-вторых она дрын-выручатель в работе. И она гораздо интереснее, чем тебе казалось в школе, ты это почувствуешь после первого же осознанного експрешена.

проект с этими гифками

Report Page