Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры по кг2 2009.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.05 Mб
Скачать

4. Графический пакет. Основные понятия и определения.

Программе нужно вывести график функции баланс за 1999 г.

Объект – соотношение между двумя переменными.

Изображение – геометрическое представление этого соотношения.

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

Для совместимости между различными устройствами вводится понятие текущее положение – положение точки в мировом координатном пространстве, в котором находится абстрактный текущий узел. Наличие текущего положения сокращает число параметров. Команды графического пакета, могут быть абсолютными или относительными. Прямоугольная область в мировом координатном пространстве, которое ограничивает видимую область, часть изображения в компьютерной графике называется окном (window). По отношению к окну примитивы подвергаются отсечению, т.е. часть примитивов не попадающие в окно отсекаются и удаляются. Изображение может занимать не всю window поверхность, а только её часть. Часть window поверхности, на которое выводится изображение, называют полем вывода (view port). Размер поля можно задавать в координатах, связанных с устройством, но тогда пакет привязан к конкретному устройству. Для общего описания вводим систему нормированных координат, считаем видовую поверхность размером 1х1, если устройство не квадратное, то выделяем область.

Процесс отсечения примитивов по границам окна и отображения окна на поле вывода называется видовая операция.

Сегмент изображения – есть замкнутая последовательность примитивов, воспринимаемая графическим пакетом как единое целое. Сегмент имеет имя и с ним разрешен набор операций сегмента, перемещение, добавление элемента к сегменту.

Простой графический пакет.

Формирование изображения состоит из этапов:

  1. Прикладная программа формирует поток примитивов, у которой строится изображение.

  2. Примитивы, заданные в мировых координатах подвергаются отсечению по границам окна и преобразуются в нормированные координаты.

  3. Из примитивов, заданных в нормированных координатах формируется дисплейная программа, т.е. поток команд конкретного дисплейного процесса.

  4. Дисплейный процессор преобразует в свечении на экране, краску на бумаге и т.д.

примитивы МК

примитивы

МК

видимая операция

графический пакет

Генератор команд – зависит от типа аппаратуры графического пакета.

Процессор видовой операции – универсальные команды.

Он выдает следующие операции:

  1. О тсечение примитивов по границам окна.

Примитивы: точки, отрезки, текст.

Точки, лежащие на границах окна, принадлежат окну.

точки

Если у отрезка одна точка в окне, а другая наружу, то на границе окна

Если обе точки наружу, но пересекают окно , то пересечение с окном берем

Алгоритм отсечения отрезков называется алгоритмом Kohan Sutherland отсечения отрезков: каждому концу отрезка ставится в соответствие 4-битовый код вне/внутри.

Код строится из следующих соображений :

1001

А *

1000

1010

0001

0000

0010

0101

0100

G*

0110

Бит 1=1, если точка лежит выше окна

Бит 2=1, если точка лежит ниже окна

Бит 3=1, если точка справа от окна

Бит 4=1, если точка слева от окна

Шаг 1. Если для обоих концов отрезка побитовая операция «или» над кодами его концов дает в результате 0, то отрезок лежит целиком внутри окна.

Шаг 2. Если для обоих концов побитовая операция «и» даёт результат не равный 0, то отрезок лежит целиком с одной стороны окна. Он отбрасывается и не рисуется.

Шаг 3. Если «и» = 0, то отрезок нельзя не отбросить целиком, не принять целиком. Если один из концов отрезка лежит внутри окна, находим точку пересечения отрезка с границей окна и изображаем полученный отрезок.

Шаг 4. Если оба конца за пределами окна, то находим точку пересечения отрезка с границей окна, часть отрезка за границей отбрасываем и оставшийся отрезок подвергаем повторной проверке.

Для упрощения поиска точки пересечения с границами окна, берем границы вертикальной и горизонтальной линий.

X=(x2-x1)/(y2-y1)(y-y1)+x1

Несколько методов отсечения текста по границе окна.

  1. Каждую букву считаем совокупностью отрезков и подвергаем отсечению каждый отрезок в отдельности.

  2. Каждую букву считаем неделимым объектом. Если прямоугольник, занимаемый буквой, попадает в окно, то букву выводим.

  3. Слово или строку целиком считаем неделимым объектом, если в окно попадает, то выводим.

О тображение окна на поле вывода.

S,a – const, зависят от окна и поля вывода.