В алгоритмах для строк развертки графические примитивы задаются через координатные представления, т.е. определяются положения пикселей, которые следует изображать. Например, если заданы координаты конечных точек линейного отрезка, алгоритм построения изображения должен вычислить положения тех пикселей, которые лежат на прямой, соединяющей эти точки. Поскольку пиксель занимает конечную площадь экрана, это должно учитываться при выполнении алгоритмов. В настоящее время центр области, занимаемой пикселем, принято сопоставлять с каждым целочисленным значением координаты на экране. (В разделе 3.13 будут рассмотрены альтернативные схемы обращения к пикселям.)

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

setPixel (х, у); Эта процедура записывает текущий код цвета в буфер кадра с целочисленными координатами (ж, у) относительно произвольно выбранного на экране начала отсчета. Иногда может понадобиться извлечь текущее значение из буфера кадра для определенного положения пикселя. Поэтому предположим, что существует следующая низкоуровневая функция, позволяющая получить код цвета из буфера кадра.

getPixel (х, у, color); В этой функции параметр color может принимать целочисленные значения, которые соответствуют комбинации RGB-кодов для заданного пикселя с координатами (х, у).

Для двухмерного изображения нам нужно задать только коды цвета в точках (х, у), а для трехмерных сцен необходима дополнительная информация об экранных координатах. В этом случае экранные координаты записываются как трехмерные значения, где третья координата обозначает глубину данной точки объекта относительно точки наблюдения. Для двухмерных сцен все значения глубины равны 0.

АБСОЛЮТНЫЕ И ОТНОСИТЕЛЬНЫЕ КООРДИНАТЫ

Все рассмотренные выше системы координат формулировались через значения абсолютных координат. Это означает, что задаются действительные положения точек в используемой системе координат.

Однако в некоторых графических пакетах положения точек можно также задавать с помощью относительных координат. Этот способ удобен для построения чертежей с помощью перьевых графопостроителей, создания художественных изображений, а также для издательских целей и печатной работы. Воспользовавшись этим способом, можно задавать координаты точки относительно последнего положения, к которому обращалась система (его называют текущим положением). Например, если точка с координатами (3, 8) - это последнее положение, к которому обращалась программа, то относительные координаты (2, -1) соответствуют абсолютным координатам (5, 7). В таком случае, перед тем, как задать какие-либо координаты для функций примитивов, используется дополнительная функция, устанавливающая текущее положение. Тогда, чтобы описать такой объект, как набор соединенных между собой прямолинейных отрезков, нужно задать только последовательность относительных координат (смещений) после того, как будет установлено исходное положение. Графические системы могут предлагать опции, позволяющие задавать положение точки с помощью либо относительных, либо абсолютных координат. Далее, если явно не оговорено противное, будем считать, что все координаты задаются в абсолютных системах отсчета.


⇐ вернуться назад | | далее ⇒