Часть полного текста документа:Один метод построения полигональных изображений Василий Терешков Построение изображений трехмерных объектов при помощи компьютера - тема, которая издавна привлекала особое внимание программистов и разработчиков аппаратных средств. С появлением эффективных графических библиотек (Direct3D, OpenGL и т.п.) и специализированных видеокарт интерес к математическим основам машинной графики снизился, поскольку у программистов исчезла необходимость самостоятельно создавать алгоритмы построения изображений. В этом одна из сторон печальной тенденции превращения программирования из искусства в ремесло. Все же немало есть и тех, кто захочет не только получить результат, но и узнать, что лежит между интерфейсом графической библиотеки и готовой картинкой на экране. Для них и предназначена эта статья, в которой мы постараемся изложить суть одного метода построения трехмерных изображений, быть может, не самого эффективного. Терминология Прежде поясним некоторые математические понятия, которыми будем пользоваться в дальнейшем. Мировая система координат - в нашем случае пространственная прямоугольная система координат (СК), две оси которой (X и Y) направлены по сторонам экрана монитора, а третья - от наблюдателя. Экранная система координат - СК в плоскости экрана, ее оси совпадают с осями X и Y мировой СК. Система координат модели - СК, относительно которой в файле заданы координаты всех вершин модели, изображение которой строится. Вектор - направленный отрезок, его положение будем задавать либо координатами начала и конца, либо их разностями (собственно координатами вектора). Длина (модуль) вектора рассчитывается как квадратный корень из суммы квадратов его координат - это следствие теоремы Пифагора. Скалярное произведение векторов - число p, определяемое следующим образом: или, где |A| и |B| - длины векторов A и B, x, y, z - их координаты, t - угол между ними. Коллинеарные векторы - два или более вектора, лежащие на одной прямой или параллельных прямых. Компланарные векторы - три или более вектора, которые при отложении из одной точки оказываются лежащими в одной плоскости. Если векторы A, B, C компланарны, то вектор C можно разложить по векторам A и B, то есть C=aA+bB, где a и b - некоторые коэффициенты. Нормаль к вектору - вектор единичной длины, перпендикулярный данному. На плоскости координаты нормали к вектору P(x; y) определяются по формулам: Определитель - алгебраическое выражение, записанное в особой форме. Мы будем использовать определители 3-го порядка: Существует мнемоническое правило вычисления определителей 3-го порядка - так называемое правило Саррюса, с которым можно ознакомиться в специальной литературе. Используемые данные и их представление Возможно, вы обратили внимание на слово "полигональный" в заголовке статьи. Поясним его смысл. "Полигон" в переводе на русский язык означает "многоугольник", а "полигональный" - "составленный из многоугольников". В применении к машинной графике это означает, что для построения изображения произвольного тела сначала создается его модель - сложный многогранник, все грани которого представляют собой многоугольники, как правило, простейшие, - треугольники. В файле с информацией о модели должны быть каким-либо образом заданы координаты всех вершин (их число может достигать нескольких тысяч) и порядок их соединения. ............ |