Это база: Зачем нужна математика в повседневной жизни - Йэн Стюарт
Шрифт:
Интервал:
Закладка:
* * *
В настоящее время комплекс инструментов, применяемых для компьютерной анимации, пополняют кое-какой весьма хитроумной математикой. Цель, как всегда, – сделать задачу аниматора как можно более простой, получить реалистичный результат и снизить затраты денег и времени. Мы хотим всё, причем сразу и дешево.
Предположим, например, что у киностудии имеется библиотека анимаций динозавра, содержащих последовательности его движений. В одной он несется вперед, совершая один «цикл бега», то есть один сегмент периодически повторяющегося движения. В другой – подпрыгивает и приземляется. Вам нужно создать последовательность, в которой он гонится за небольшим травоядным животным и прыгает на него. Эффективным началом работы над этой последовательностью будет сшивание десятка-другого циклов бега и добавление в конце прыжка. Конечно, затем придется чуть-чуть все поменять, чтобы зрителю не было видно, что повторяется одна и та же анимация, но для начала это совсем неплохо.
Разумно сшивать и выстраивать последовательности на уровне скелета. Все остальное – набросить сетки, добавить цвет и текстуру – можно сделать позже. Поэтому вы делаете очевидное – соединяете подряд 12 копий цикла бега и прыжок и смотрите, как выглядит результат.
Он выглядит ужасно.
Отдельные кусочки ничего, но друг с другом они гладко не стыкуются. Результат получается дерганым и неубедительным.
До недавнего времени единственным выходом была модификация стыков вручную с интерполяцией новых небольших кусочков движений. Но это было не очень просто. Однако кое-какие недавние новинки в области математических методов обещают облегчить эту задачу. Идея заключается в использовании методов сглаживания для заполнения прорех и выравнивания резких переходов. Главное – найти способы делать это с единичной костью скелета или, в более общем случае, с единичной кривой. Решив такую задачу, можно вновь сшить скелет воедино из отдельных костей.
Область математики, которую сейчас пытаются применить, называется теорией форм. Поэтому начнем с очевидного вопроса: что такое форма?
В обычной геометрии встречается множество стандартных форм: треугольник, квадрат, параллелограмм, окружность. При интерпретации в координатной геометрии эти формы превращаются в уравнения. На плоскости, например, точки (x, y) на единичной окружности в точности удовлетворяют уравнению x2 + y2 = 1. Еще один очень удобный способ представления окружности состоит в использовании так называемого параметра. Это вспомогательная переменная, скажем t, которую мы можем рассматривать как время, вместе с формулами, определяющими, как x и y зависят от t. Если t принимает ряд численных значений, то каждое его значение дает нам две координаты x(t) и y(t). Возьмите правильные формулы, и эти точки определят окружность.
Стандартные параметрические формулы для окружности имеют тригонометрический характер:
x(t) = cos t, y(t) = sin t.
Можно также изменить вид параметра в формуле и все равно получить окружность. Например, если заменить t на t3, то формулы
X(t) = cos t3, y(t) = sin t3
тоже определяют окружность, причем ту же самую. Такой эффект наблюдается потому, что параметр времени несет больше информации – не только о том, как меняются x и y. Согласно первой формуле, точка при изменении t движется с постоянной скоростью. Согласно второй формуле, нет.
Теория форм – это способ обойти проблему неопределенности. Форма – это кривая, которая рассматривается как объект, не зависящий от конкретной параметрической формулы. Так что две параметрические кривые определяют одну и ту же форму, если можно изменением параметра превратить одну формулу в другую, как при замене t на t3. За последнее столетие математики придумали общепринятый способ делать подобные вещи. Никто другой, скорее всего, об этом не подумал бы, потому что для этой идеи требуется абстрактное мышление.
Первый шаг заключается в том, чтобы рассматривать не просто одну параметрическую кривую, а «пространство» всех возможных параметрических кривых. Тогда мы говорим, что две «точки» в этом пространстве (то есть две параметрические кривые) эквивалентны, если можно перейти от одной из них к другой посредством изменения параметра. Тогда «форма» определяется как целый класс эквивалентности кривых – множество всех кривых, эквивалентных данной.
Это более обобщенный вариант приема, используемого в модулярной арифметике. Для целых чисел по модулю 5, например, «пространство» – это все целые числа, а два целых числа эквивалентны, если их разность кратна пяти. Существует пять классов эквивалентности:
Все числа, кратные 5;
Все числа, кратные 5, плюс 1;
Все числа, кратные 5, плюс 2;
Все числа, кратные 5, плюс 3;
Все числа, кратные 5, плюс 4.
Почему здесь следует остановиться? Потому что число, кратное 5, при добавлении 5 становится всего лишь следующим кратным 5.
В данном случае множество классов эквивалентности, обозначаемое Z5, обладает весьма полезной структурой. И правда, глава 5 показала, что значительная часть фундаментальной теории чисел опирается именно на эту структуру. Мы говорим, что Z5 – это «фактор-пространство» целых чисел по модулю 5. Именно его вы получите, если сделаете вид, что числа, различающиеся на 5, идентичны.
Нечто аналогичное приводит нас к созданию пространства форм. Здесь вместо целых чисел мы имеем пространство всех параметрических кривых. Вместо того чтобы менять числа на кратное 5, мы меняем формулу параметра. Так что в конечном итоге мы получаем «фактор-пространство», то есть пространство всех параметрических кривых по модулю изменений параметра. Звучит, возможно, бессмысленно, но это давно уже ставший стандартным прием, ценность которого подтверждена временем. Одна из причин его ценности в том, что фактор-пространство – это естественное описание интересующих нас объектов. Другая – в том, что обычно фактор-пространство наследует от исходного пространства его интересную структуру.
Для пространства форм основной интересной особенностью структуры является мера расстояния между двумя формами. Если взять окружность и слегка ее деформировать, мы получим замкнутую кривую, близкую к окружности, но не совпадающую с ней. Если деформировать окружность сильно, получим замкнутую кривую, которая, на интуитивном уровне, отличается от