Окно и видовой экран
Термин окно (window) в сетевой компьютерной среде обозначает область экрана монитора, посредством которого пользователь взаимодействует с вычислительными ресурсами, подключенными к той же сети. В компьютерной графике этот термин имеет иное значение. Окно — это область пространства, проецируемая на монитор. Объекты, находящиеся вне окна, на мониторе не появляются. В этом смысле оно подобно окну дома, через которое человеку, сидящему внутри дома, видна лишь часть внешнего мира. Вероятно, эта аналогия была основанием для выбора соответствующего термина. Окно обычно определяется как прямоугольник, лежащий на экране и заданный значениями Хг, и Yt. в системе координат просмотра (рис. 3.9 и рис. 3.10). Видимая область пространства, называемая просматриваемым объемом (viewing volume), зависит от типа проекции. Для параллельной проекции эта область имеет форму параллелепипеда, а для перспективной — форму пирамиды.
Рисунок 3.9 - Окно и просматриваемый объем для параллельной проекции
Рисунок 3.10 - Окно и просматриваемый объем для перспективной проекции
Просматриваемый объем при проектировании может давать довольно сложное изображение, поскольку в него могут попадать ненужные объекты, расположенные вблизи наблюдателя или вдали от него. Иногда бывает удобно ограничить этот объем двумя плоскостями, из которых одна располагается ближе, а другая - дальше (рис. 3.11). Для параллельной проекции ближняя и дальняя плоскости определяются так же, как и для перспективной.
Рисунок 3.11 - Ближняя и дальняя плоскости
Видовой экран (viewport) — это область экрана, где будет отображаться проецируемое изображение (рис. 3.12).
Рисунок 3.12 - Видовые экраны
В эту область проецируется просматриваемый объем, определяемый «обычным» окном. Отображение состоит из трансляции и масштабирования, учитывающих расстояние между центром видового экрана и центром монитора, а также разницу размеров окна и видового экрана. Другими словами, значения Xs и Ys, полученные по формулам (3.1) и (3.2), должны быть увеличены или уменьшены таким образом, чтобы центр окна попадал в центр видового экрана, а не в центр монитора. Кроме того, они должны быть подвергнуты масштабированию, чтобы четыре граничные точки окна стали четырьмя граничными точками видового экрана. Соотношение сторон у окна должно быть таким же, как и у видового экрана, в противном случае изображение будет искажено, и круг, например, превратится в эллипс.
Примитивы
Примитивы (primitives) — это элементы графики, которые могут отображаться графической библиотекой. В каждой библиотеке набор примитивов свой, поэтому в данном разделе мы рассмотрим только наиболее общие примитивы, поддерживаемые большинством графических библиотек.
Отрезок
Для отображения отрезка прямой (линии — line) необходимо задание координат двух его концов. В большинстве графических библиотек координаты концов могут задаваться в трехмерном пространстве; проецирование на плоскость экрана осуществляется автоматически. Можно указывать атрибуты отрезка: тип, толщину, цвет и другие. Типы отрезков, поддерживаемых большинством графических библиотек, изображены на рис. 3.13. Для систем автоматизированной разработки чертежей поддержка этих типов линий совершенно необходима, поскольку они часто используются в машиностроительных и архитектурных чертежах и электрических схемах.
Рисунок 3.13 - Различные виды отрезков
В библиотеках GKS, PHIGS и OpenGL одной из базовых функций является ломаная (polyline), представляющая собой набор соединенных друг с другом отрезков. Координаты концов отрезков, составляющих ломаную, задаются в виде матрицы. В случае ломаной, состоящей всего из одного отрезка, в матрицу помещаются координаты двух его концов.
