Кошечка в дифференциальных уравнениях

Александр ПУРНИК

Что такое механическое движение (в том числе движения животного)? Фактически это серия переходных процессов. Если мы сумеем подобрать систему дифференциальных уравнений движения, например, кошки, то в качестве цифрового решения получим серию состояний, из которых складывается движение. Остался пустяк — суметь изобразить эти состояния в виде картинок, и мы получаем готовый цифровой мультфильм. Первый такой советский «мультик» был создан в 1968 году.

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

Для этого вполне подходила одна из первых ЭВМ второго поколения БЭСМ-4, созданная в 1962 году в Институте точной механики вычислительной техники и способная обрабатывать 20 тысяч операций в секунду. И в 1968 году начались работы по подбору системы уравнений и методики их цифрового решения. Реализация этой идеи была выполнена на кафедре общих проблем управления механико-математического факультета Московского государственного университета. Отладка программы и её эксплуатация проводились в Вычислительном центре Московского государственного педагогического института им. В. И. Ленина (ныне — МПГУ). Результаты работы были опубликованы только спустя шесть лет — в 28 выпуске журнала «Проблемы кибернетики» за 1974 год (http://www.etudes.ru/data/localdocs/koshechka.djvu). Думаю, что сказалась тогдашняя «неторопливость» в публикации материалов в научных журналах.

Кошку промоделировали как набор элементов. Уравнения движения задавались для каждого элемента. Сложнее всего оказалось моделировать движение лап (они от кадра к кадру меняли своё положение сильнее всего).

Другой проблемой стала выдача результатов. Графических дисплеев (равно как и принтеров с печатью «по точкам») в то время не было, и рисунки выдавались на печатающее устройство в виде набора литер АЦПУ. Помните, в фильме «Служебный роман» таким способом нарисовали Джоконду.

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

 
Для массовой отрисовки кадров такой подход (с индивидуальным подбором литеры для каждого знакоместа) не годился — при тогдашнем уровне программного обеспечения это было недоступно. Поэтому приняли решение о двоичной отрисовке. Использовались только два символа. Литера Ш (она даёт максимальное покрытие участка, выделенного под литеру) использовалась как «есть точка», а литера «пробел» как «нет точки». Это был принтерный аналог графического монохромного дисплея.

В итоге после решения системы дифференциальных уравнений движения получилась примерно такая последовательность кадров движения кошки:

 
Кадры с АЦПУ были cфотографированы и приведены в порядок (чистился «шум» от печати на принтере). Туда добавили созданные вручную титры. Так получился полностью цифровой мультфильм «Кошечка».

Сейчас, когда компьютеры стали куда мощнее, появились средства отображения и сохранения графической (включая видео) информации, история «Кошечки» кажется далёкой и немножко наивной. Но не надо забывать: ОНИ БЫЛИ ПЕРВЫМИ.

Оставьте первый комментарий

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*