Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Turbo Pascal / Методические указание / Линейчатые графические образы.DOC
Скачиваний:
22
Добавлен:
15.06.2014
Размер:
878.59 Кб
Скачать

41

Министерство общего и профессионального образования

Российской Федерации

Уфимский государственный авиационный

технический университет

Кафедра технической кибернетики

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к лабораторным работам

по курсу "Интерактивная машинная графика"

для подготовки инженеров по специальности 220200 "Автоматизированные системы обработки информации и управления"

Часть 2

"Линейчатые графические образы"

Уфа 1997

Составитель: О.В. Трушин

УДК 681.3.06

Методические указания к лабораторным работам по курсу

"Интерактивная машинная графика" для подготовки инженеров

по специальности 220200 "Автоматизированные системы обработки информации и управления" Часть 2. "Линейчатые графические образы" / Уфимск. гос. авиац. техн. унив-т; Сост. О. В. Трушин. - Уфа, 1997. - 35 с.

Приведены задания для лабораторных работ по второй части курса "Интерактивная машинная графика", где рассматриваются приемы и методы синтеза линейчатых графических образов с использованием как простых, так и достаточно сложных алгоритмов. Рассматриваемые алгоритмы реализованы на языке Turbo-Pascal_7 в форме, позволяющей при необходимости легко адаптировать их для других систем программирования.

Ил. 6 . Библиогр.: 10 наимен.

Рецензенты: В. Н. Мукасеева

М. Е. Сидоров

Содержание

Стр.

Введение ........................................................................................ 4

Лабораторная работа № 1.

Алгоритмы синтеза фигур из отрезков прямых ............................ 6

Лабораторная работа № 2.

Приемы синтеза линейчатых графических узоров ....................... 12

Лабораторная работа № 3.

Применение рекурсии при синтезе графических образов ............. 19

Лабораторная работа № 4.

Растровые алгоритмы ................................................................... 26

Список литературы ....................................................................... 34

Введение

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

При работе с линиями можно определять их режимы вывода и стили. Для отрезков прямых линий режим построения задается оператором

SetWriteMode( N )

N=0 ( режим CopyPut ) - замещение линией изображения на экране, этот режим используется по умолчанию,

N=1 ( режим XorPut ). - изображение комбинируется. По логической операции Xor ("исключающее ИЛИ") исходное значение цвета пиксела на экране побитово складывается с цветом пиксела выводимой линии. Результирующий бит равен единице при различных значениях соответствующих бит, иначе - равен нулю.

Например, при выводе красной линии на желтом фоне в режиме XorPut получим

0100 ( красный )

xor 1110 ( желтый )

1010 ( светло-зеленый)

Функция Xor, примененная к одной переменной дважды, восстанавливает ее исходное значение ( J xor I ) xor I = J . При повторном проведении линии на том же месте в режиме XorPut изображение этой

линии уничтожается, а цвет пикселов экрана становится исходным

1010 ( светло-зеленый)

xor 0100 ( красный )

1110 ( желтый )

Этот прием удобно использовать при создании движущихся линейчатых изображений без порчи фонового изображения.

Толщину и форму ( стиль ) линий отрезков прямых, прямоугольников, окружностей, эллипсов можно задать оператором

SetLineStyle( F, P, T ) ,

где F - форма, Р - стиль, T - толщина линии.

Форма линии задается как:

F=0 - сплошная,

F=1 - пунктирная,

F=2 - штрих-пунктирная,

F=3 - штриховая,

F=4 - форма линии определится параметром Р, причем при F<4 значение Р игнорируется.

Стиль линии Р - это число, двоичное представление которого отображает заполнение повторяющегося фрагмента линии длиной 16 пикселов. Если разряд числа равен 1, то пиксел высвечивается, 0 - не высвечивается. Удобно использовать шестнадцатеричную форму записи числа. Например:

P = $35F1 = 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 1 ( двоичное )

отобразит стиль:

Можно использовать десятичную форму записи:

0<= P <= 65535= 216-1.

Толщина линии может принимать два значения:

T=1 - тонкая ( 1 пиксел ),

T=3 - толстая ( 3 пиксела ).

Применяя к исходным стилям линий пользователя логические

операции, можно получать новые стили. Например:

P1 and P2 - линии из совпадающих элементов,

P1 or P2 - добавление элементов стилей,

P1 xor P2 - обнуление совпадающих элементов,

not P2 - инверсный для P2 стиль.

Лабораторная работа № 1

Алгоритмы синтеза фигур из отрезков прямых