В чем-то процедурные методы напоминают способы представления в компьютерах иррациональных чисел - корней квадратных, синусов, косинусов и т.п. Рассмотрим, например, три способа представления числа 72 . Его можно представить в виде константы
72 =1.414… ,
ограничившись возможностями разрядной сетки компьютера. Есть и другой вариант, более абстрактный: считать, что 72 - это положительное число дг, такое, что х2=2.
Но в компьютерах, как правило, 72 представляется как результат выполнения некоторого алгоритма, например расчета по методу Ньютона:
2 л*
при начальном значении х0=\. С этой точки зрения иррациональное число 72 определено не своим значением, а алгоритмом расчета, т.е. определено программно. Аналогичный подход можно применить и в отношении некоторых объектов, с которыми приходится иметь дело в графических приложениях. Например, сферу, центр которой находится в начале координат, можно определить как математический объект, удовлетворяющий уравнению
2 "> 2 2
х+у+:=г .
Сферу можно определить и как результат выполнения алгоритма рекурсивного разбиения тетраэдра, который мы рассматривали в главе 6, или как результат соответствующей программы. Потенциальное достоинство такого подхода состоит в том, что изображение сферы будет содержать разное количество многоугольников, в зависимости от того, в каком масштабе она будет представлена на экране.
Есть и еще одна проблема, суть которой состоит в том, что полигональное представление объектов в системе компьютерной графики очень сложно увязать с физическими законами, моделируемыми прикладной программой. Хотя и можно построить и "оживить" полигональную модель какого-либо реального объекта, но значительно сложнее показать, что этот объект является сплошным, а следовательно, два таких объекта при столкновении не могут проникнуть друг в друга.
В этой главе мы рассмотрим два подхода к процедурному моделированию. Сначала рассмотрим систему частиц, подчиняющихся законам Ньютона. Будет показано, как можно смоделировать сложное поведение таких частиц, пользуясь математическим аппаратом решения дифференциальных уравнений. Вычисленное положение частицы будет использовано в графической системе в качестве информации для размещения стандартного геометрического объекта в пространстве отображаемой сцены.