16.5. ЦЕНТРАЛЬНЫЕ ПРОЕКЦИИ
Введение центральной проекции представляет собой попытку имитировать способ, с помощью которого наблюдатель формирует представление о наблюдаемой им сцене. Объекты проектируются на картинную плоскость из центральной точки — глаза наблюдателя (рис. 16.4).
Рис. 16.4. Иллюстрация к понятию центральной проекции. Проекцией отрезка служит отрезок а отрезка — отрезок
Рис. 16.5. Соотношение координат проектируемой точки и ее центральной проекции
Подобное спроектированное изображение легко построить, опираясь на описание объемного тела; этот способ изображения используется в живописи на протяжении многих веков. Следует отметить, что лишь очень небольшая часть художников слепо придерживается законов перспективы, поскольку изображения, нарисованные в соответствии с ними, не всегда выглядят правильно. В машинной графике, к сожалению, необходимо строго следовать определенному правилу, поскольку программы вычислительных машин в состоянии реализовать лишь математические предписания. Если мы не удовлетворены результатами применения строгих законов перспективы, следует внести в них изменения, сформулированные математически в явном виде. Центр проектирования обычно совмещается с позицией наблюдателя, который смотрит на экран, расположенный на расстоянии от центра проектирования; последний можно использовать и в качестве начала координат. Применив обозначения, приведенные на рис. 16.5, устанавливаем, что точка Р с координатами х, у, z отображается в точку Р с координатами Однако при воспроизведении изображения необходимо учесть загораживание одних объектов другими и, следовательно, необходимо сохранять информацию о значениях координаты По причинам, которые будут изложены ниже, для координаты масштаб изменяется таким же образом, как и для координат х и у. Эта операция не повлияет на относительные расстояния объектов от экрана, так как при справедливо также неравенство
Перспективные преобразования допускают компактные представления при использовании однородных координат, поскольку в
этом случае приходится изменять лишь последнюю компоненту. Можно, в частности, записать, что
Если — однородные координаты, то после проектирования
так как Отсюда определяется искомое значение масштабного множителя. Для воспроизведения на экране некоторой оценки, необходимо сначала умножить все ее точки на матрицу Р, затем определить видимые точки, после чего высветить те точки экрана, координаты х и у которых соответствуют координатам видимых объектов.
Пример 16.3. Воспроизводится изображение, имитирующее вид, открывающийся перед водителем, едущим по прямой дороге. Будем считать, что водитель находится в начале координат и направление движения перпендикулярно экрану. Поскольку система координат также движется в этом направлении, различные изображения можно получать, меняя значения координаты объектов сцены. Для простоты будем считать, что на сцене, кроме дороги и горизонта, имеется всего один объект — квадратный рекламный щит, расположение которого показано на рис. 16.6, а и б. Этот щит образует с осью дороги угол 45°, его левый край находится на расстоянии и от прямой, по которой ведет машину водитель, высота щита равна и, ширина — и расстояние между
Рис. 16.6. (см. скан) Расположение объектов, рассматриваемых в примере 16,3: а - в плоскости ху, б - в плоскости в — полученная проекция
его нижним углом и водителем равно с. В таком случае углы щита имеют координаты:
Расстояние между поверхностью дороги и водителем равно с, ее правым краем и водителем — и левым краем дороги и водителем — Таким образом, две параллельные прямые, обозначающие дорогу, определяются следующей парой уравнений
Отметим, что отдельные части изображения не будут изменяться. Точка, расположенная на правой границе дороги на расстоянии от водителя, воспроизводится как точка с координатами.
Ютсюда следует, что при и при Таким образом, правый край дороги будет все время воспроизводиться как отрезок прямой, соединяющий точки с координатами и (0,0). Аналогичным образом, левый край дороги будет воспроизводиться как отрезок прямой, соединяющий точки . Соответствующее изображение представлено на рис. Координаты центральных проекций углов рекламного щита определяются следующими выражениями
При все точки стягиваются к началу координат. Если изображение воспроизводится с разрешением, равным пикселам, то наименьшим различимым значением является , следовательно, при наибольшим значением дающим при проекции ненулевые координаты, является Программа, обеспечивающая воспроизведение такого изображения, содержит цикл, начинающий работу с и осуществляющий вычисления для последовательно уменьшающихся значений вплоть до 0. Следует уделить внимание отсечению части изображения, так как точки Е и первыми покидают пределы экрана. Если можно организовать доступ к словам памяти обновления изображения (см. разд. 1.6 и 17), то выбранный участок изображения можно стереть с экрана и затем воспроизвести его снова, не затрагивая фон. Изображение рекламного щита можно получить, воспользовавшись каким-либо простейшим алгоритмом заполнения области и применив его ко всему изображению.
Этот пример показывает, что построение центральных проекций не вызывает затруднений в случаях, когда отсутствует взаимодействие изображаемых объектов. Если Т — матрица межкадровых перемещений и Р — проекционная матрица, то процесс проектирования складывается из умножения всех (представленных в однородных координатах) векторов и на произведение матриц разрезания сцены в соответствии с формой окна наблюдения и, в конце концов, воспроизведения полученных результатов. Задача усложняется, если объекты сцены взаимодействуют друг с другом, при этом приходится решать задачу удаления невидимых линий.