Главная > Разное > Принципы программирования в машинной графике
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

4.6. НАПРАВЛЕНИЕ НАБЛЮДЕНИЯ, БЕСКОНЕЧНОСТЬ, ВЕРТИКАЛЬНЫЕ ЛИНИИ

Используем программу GPERSF для обсуждения некоторых новых интересных аспектов. Предположим, что объект очень длинный в направлении оси х, как, например, балка на рис. 4.20, размеры которой Интересным аспектом этого примера является задание точки О, которую мы должны указать для определения направления наблюдения До сих пор точка О выбиралась в центре объекта. Однако фактически нужна такая точка О, изображение которой будет располагаться в центре картинки. Часто это не существенно, но иногда очень сильно влияет на изображение. Например, на рис. 4.21 точка О оказывается по средине отрезка хотя соответствующая ей точка О выбрана не на середине исходного отрезка Если бы для нее была задана середина отрезка то направление наблюдения получилось бы совершенно иным.

Вернемся к балке, изображенной на рис. 4.20. Очевидно, что точку О следует выбирать не в середине балки, а значительно ближе к глазу. Это возможно осуществить потому, что в нашей программе объектная точка задается пользователем, а не вычисляется как центр объекта. Реальные бесконечные линии при изображении ландшафта на картинке получаются в виде отрезков

Рис. 4.20. Длинная балка

Рис. 4.21. Объектная тонка не в центре объекта

прямых конечной длины. Для бесконечных объектов нет никакого смысла говорить о центре, хотя направление наблюдения существует. Поэтому и требуется определить положение “центральной” точки О объекта. Балка на рис. 4.20, конечно, не является ландшафтом в точном смысле, но ее длина предполагает существование бесконечности; если это не совсем ясно, то для определения ее длины можно задать число значительно больше 200. Для данной балки выберем точку . За исключением букв вся эта картинка была вычерчена с помощью программ и Пересечение балки с плоскостью обозначено буквами а пересечение с плоскостью Следовательно, точка О лежит в плоскости а плоскость расположена по центру балки. Полный набор входных данных для получения рис. 4.20 определяется списком:

Другой аспект, требующий специального рассмотрения, — это представление вертикальных линий, кратко упомянутое в параграфе 4.3. На рис. 4.11 мы видели, что спроецированные вертикальные линии встречаются в точке схода Мы также сравнивали представления кубиков на рис. 4.12. Если точка О расположена в центре кубика, то наша программа не сможет сформировать изображение рис. 4.12(б). Но точку О можно поместить над кубиком так, чтобы направление наблюдения было горизонтальным. Тогда экран будет занимать вертикальное положение, поскольку он перпендикулярен направлению наблюдения. Это означает, что вертикальные ребра кубика будут параллельны экрану. Следовательно, их проекции на картинке также будут точно вертикальными. Курьезным здесь является то, что, хотя линия наблюдения горизонтальная, мы будем видеть верхнюю грань кубика как бы сверху.

Получаемая картинка выглядит совершенно натурально, пока мы не преувеличим и не выберем точку наблюдения слишком высоко. На рис. 4.22 показаны оба таких случая.

Линии на рис. 4.22(a) были вычерчены программами GPERSF и GENPLOT на основе следующего списка входных данных:

Рис. 4.22(б) получен путем выбора точки О значительно выше, а именно — с координатами (0,0,6) вместо (0,0,2). Это уже совсем нереалистичное изображение кубика. В то же время рис. 4.22(a) вполне приемлем. Некоторые даже предпочитают его по сравнению с кубиками на рис. 4.2(a) и рис. 4.12(a), где вертикальные линии имеют точку схода. Если кубик вычерчивается в перспективе вручную, то обычно вертикальные линии остаются вертикальными, как на рис. 4.22(a). Другие представления выполнить вручную уже значительно труднее. С помощью компьютера их выполнить одинаково просто и пользователь может выбрать такие, какие ему нравятся.

Рис. 4.22. (а) - объектная тонка несколько выше кубика; (б) - объектная точка очень высоко над кубиком

Замечание

Программы в этой главе предназначены скорее для объяснения принципов, чем для практического применения. В главах 5 и

6 будут обсуждены более практичные программы.

УПРАЖНЕНИЯ

(см. скан)

(см. скан)

<< Предыдущий параграф Следующий параграф >>
Оглавление