null

Преобразования на комплексной плоскости или как дробно-линейные преобразования в полярных координатах могут пригодиться в жизни на примере котиков

Статья о том, что такое дробно-линейные преобразования в комплексной плоскости могут пригодиться в жизни и как при помощи них можно искажать объект для получения желаемого вида. В конце бонусом получим анимацию :).

 

В целом, дробно-линейные преобразования на комплексной плоскости -- это преобразования вида , где a, b, c, d и z -- комплексные числа. Но об этом позже. Начнем с самого начала:

 

Допустим, у нас есть кот . Поставим этого кота на комплексную плоскость.

 

 

Что можно сделать с этим котом? Самое простое - сдвинуть кота по какой-либо из координат вправо/влево или вверх/вниз. Для этого надо прибавить к коту какое-либо комплексное число. Получим отображение вида: , где a - комплексное число.

 

 

Помимо этого, можно повернуть этого кота на некоторый угол  .  .

 

 

И увеличить/уменьшить кота в k раз:

 

 

 

На этом линейные преобразования закончились. Комбинируя эти 3 преобразования можно уже добиваться интересных результатов и располагать кота в любом положении и, например, закрутить кота в спираль.

 

 

 

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

 

Применим преобразование  к коту: после этого кот будет инвертирован относительно единичной окружности. Та часть кота, которая была за окружностью, окажется внутри нее, а часть, которая была внутри -- снаружи.

 

 

 

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

 

Спираль сворачивается в точку 0, а начинает разворачиваться с . Дробно-линейное преобразование переместит точку, с которой раскручивается спираль в -1, а точку, в которую спираль сходится -- в 1 (). Как-то так:

 

 

 

По каким еще траекториям можно перемещать кота ограничивает только фантазия.


 

Назад