ВІКІСТОРІНКА
Навигация:
Інформатика
Історія
Автоматизація
Адміністрування
Антропологія
Архітектура
Біологія
Будівництво
Бухгалтерія
Військова наука
Виробництво
Географія
Геологія
Господарство
Демографія
Екологія
Економіка
Електроніка
Енергетика
Журналістика
Кінематографія
Комп'ютеризація
Креслення
Кулінарія
Культура
Культура
Лінгвістика
Література
Лексикологія
Логіка
Маркетинг
Математика
Медицина
Менеджмент
Металургія
Метрологія
Мистецтво
Музика
Наукознавство
Освіта
Охорона Праці
Підприємництво
Педагогіка
Поліграфія
Право
Приладобудування
Програмування
Психологія
Радіозв'язок
Релігія
Риторика
Соціологія
Спорт
Стандартизація
Статистика
Технології
Торгівля
Транспорт
Фізіологія
Фізика
Філософія
Фінанси
Фармакологія


Вiдповiдний модифiкований алгоритм Брезенхема для першого квадранта.

procedure BresMod(Xs,Ys,Xf,Yf,I:Integer;Color:Tcolor);

var x,y,DeltaX,DeltaY:integer;m,w,e:real;

begin {BresMod}

x:=Xs; y:=Ys; DeltaX:=Xf-Xs;DeltaY:=Yf-Ys;

m:=(I*DeltaY)/DeltaX; w:=1-m; e:=1/2.;

Plot(x,y,m/2);

while (x<Xf) do

begin

if e<w

then begin

x:=x+1; e:=e+m;

end

else begin

x:=x+1; y:=y+1; e:=e-w;

end;

Plot(x,y,e);

end;

end; {BresMod}

Тут procedure Plot(x,y:integer,q:real);} - процедура виведення на форму пiксела з координатами (x, y) з iнтенсивнiстю q.

Лiтература. [5, стр.123-127].

 

3. Лабораторнi роботи

3.1 Лабораторна робота BresLine на тему "Виведення вiдрiзкiв прямих за алгоритмом Брезенхема"

Мета.Студент повинен навчитись створювати структури для представлення полiгональних двовимiрних моделей типу замкнених контурiв ("лiтер") у представленнi "ланцюга послiдовних вершин", здiйснювати организацiю вхiдного файлу з координатами таких контурiв, вводити полiгональнi двохвимiрнi моделi, здiйснювати операцiю замкнення контурiв i виводити контури "лiтер" за допомогою алгоритма Брезенхема виведенння окремих вiдрiзкiв.

Завдання. Створити текстовий вхiдний файл з вершин "лiтер", ввести вхiднi данi i накреслити на формi отриманi "лiтери" скориставшись алгоритмом Брезенхема креслення вiдрiзкiв.

Хiд виконання. За одержаними у викладача "лiтерами":

1. Накреслити цi "лiтери" на аркушi паперу у клiтинку таким чином, щоб кожна вершина контуру мала цiлочисельнi вiдноснi координати (власнi для кожної окремої "лiтери") у системi локальних математичних координат.

2. Розробити структуру вхiдного текстового файлу для введення "лiтер". Записати на аркушi паперу вхiдний файл для отриманих "лiтер" i затвердити його у викладача.

3. Розробити представлення "лiтер", написати програму введення даних з вхiдного файлу i здiйснити виведення контурiв "лiтер" на полотно форми з використанням алгоритму Брезенхема виведення вiдрiзкiв.

4. Оформити звiт з лабораторної роботи i провести її захист.

Питання до лабораторної роботи

1. Поняття растру. Пiксел. Растровий буфер.

2. Алгоритм цифрового диференцiйного аналiзатора. Переваги та недолiки методу.

3. Алгоритм Брезенхема будування вiдрiзкiв для першого квадранта. Переваги та недолiки методу.

4. Цiлочисельний алгоритм Брезенхема розкладу в растр вiдрiзка для першого квадранта. Переваги та недолiки методу.

5. Цiлочисельний алгоритм Брезенхема розкладу в растр будь-якого вiдрiзка. Переваги та недолiки методу.

Приклад органiзацiї вхiдного файла BresLine.inp

-1 8

1 0 0

2 0 10

3 5 10

4 6 11

5 6 9

6 5 8

7 2 8

8 2 0

-2 8 4 4 4

1 0 0

2 0 10

3 6 10

4 6 4

5 2 4

6 2 2

7 6 2

8 6 0

1 2 6

2 4 4

3 4 8

4 2 8

1 1 11

2 1 12

3 2 12

4 2 11

1 4 11

2 4 12

3 5 12

4 5 11

15 10 20

Тут записано двi лiтери. Код лiтери завжди вiд'ємне число (першої -1, другої -2). Далi, при кодi лiтери, вказанi числа вершин у контурах (перша лiтера має лише один контур з 8 вершин, друга - чотирi контура вiдповiдно з 8, 4, 4 i 4 вершинами). Кожен контур вказується власними послiдовними вершинами, що визначають (також послiдовно) ребра контуру, без замикання контуру, тобто без повторення його останньої вершини. Наприклад, у першої лiтери нема дев'ятої вершини "9 0 0".

До цiєї iнформацiї треба ще додати числа x, y, b тобто, величини у пiкселях розмiрiв одиницi клiтини уздовж осi OX, величини у пiкселях розмiрiв одиницi клiтини уздовж осi OY та кiлькiсть пiкселiв мiж лiтерами. Тому у кiнцi файла BresLine.inp наведено вiдповiдний рядок 15 10 20 тобто, x=15, y=10, b=20.

 

3.2 Лабораторна робота BresCirc на тему "Виведення дуг кола за алгоритмом Брезенхема".

Мета.Студент повинен навчитись створювати геометричнi структури з декiлькома графiчними примiтивами для двовимiрних моделей типу замкнених контурiв ("лiтер") у представленнi "ланцюга послiдовних примiтивiв", здiйснювати органiзацiю вхiдного файлу з наявнiстю контурiв, що заданi такими примiтивами, вводити двовимiрнi моделi з заокруглюваннями вершин, здiйснювати виведення контурiв таких "лiтер" за допомогою алгоритмiв Брезенхема виведення як окремих вiдрiзкiв, так i чвертей кола.

Завдання. Створити текстовий вхiдний файл з "лiтер", що утворюються наступними примiтивами "L Xs Ys Xf Yf" (вiдрiзок, з початком у точцi з координатами {Xs, Ys} i кiнцем у точцi з координатами {Xf, Yf}) i "C Xc Yc R n" (n-та чверть кола з центром у точцi з координатами {Xc, Yc}, радiусом R", n=1,2,3,4). Ввести вхiднi данi i накреслити на формi отриманi "лiтери" скориставшись алгоритмами Брезенхема креслення вiдрiзкiв та дуг кола.

Хiд виконання. За одержаними у викладача "лiтерами":

1. Накреслити цi "лiтери" на аркушi паперу у клiтинку таким чином, щоб кожний контур "лiтери" складався з вiдрiзкiв та чвертей кола з цiлочисельними вiдносними координатами (власнi для кожної окремої "лiтери") у системi локальних математичних координат.

2. Розробити структуру вхiдного текстового файлу для введення таких "лiтер". Записати на листi паперу вхiдний файл для отриманих "лiтер" i затвердити його у викладача.

3. Розробити представлення "лiтер", написати програму введення даних з вхiдного файлу i здiйснити виведення контурiв "лiтер" на полотно форми з використанням алгоритму Брезенхема виведення вiдрiзкiв та дуг кола.

4. Оформити звiт з лабораторної роботи i провести її захист.

Питання до лабораторної роботи

1. Алгоритм Брезенхема будування дуги кола у першому квадрантi. Переваги та недолiки методу.

2. Цiлочисельний алгоритм Брезенхема розкладу в растр дуги кола у будь-якому квадрантi. Переваги та недолiки методу.

 

3.3 Лабораторна робота BresEllips на тему "Виведення елiпсiв за алгоритмом Брезенхема".

Мета.Студент повинен навчитись створювати геометричнi структури з декiлькома графiчними примiтивами для двовимiрних моделей типу замкнених контурiв ("лiтер") у представленнi "ланцюга послiдовних примiтивiв", здiйснювати органiзацiю вхiдного файлу з наявнiстю контурiв, що заданi такими примiтивами, вводити двовимiрнi моделi з елiптичними заокруглюваннями вершин, здiйснювати виведення контурiв таких "лiтер" за допомогою алгоритмiв Брезенхема виведення як окремих вiдрiзкiв, так и дуг елiпсiв.

Завдання. Створити текстовий вхiдний файл з "лiтер", що утворюються наступними примiтивами "L Xs Ys Xf Yf" (вiдрiзок, з початком у точцi з координатами {Xs, Ys} i кiнцем у точцi з координатами {Xf, Yf}) i "E Xc Yc a b n" (n-та чверть елiпса з центром у точцi з координатами {Xc, Yc}, пiвосями a i b, n=1,2,3,4). Ввести вхiднi данi i накреслити на формi отриманi "лiтери" скориставшись алгоритмами типа Брезенхема креслення вiдрiзкiв та дуг елiпса.

Хiд виконання. За одержаними у викладача "лiтерами":

1. Накреслити цi "лiтери" на аркушi паперу у клiтинку таким чином, щоб кожний контур "лiтери" складався з вiдрiзкiв та чвертей елiпсiв з цiлочисельними вiдносними координатами (власно для кожної окремої "лiтери") у системi локальних математичних координат.

2. Розробити структуру вхiдного текстового файлу для введення таких "лiтер". Записати на листi паперу вхiдний файл для отриманих "лiтер" i затвердити його у викладача.

3. Розробити представлення "лiтер", написати програму введення даних з вхiдного файлу i здiйснити виведення контурiв "лiтер" на полотно форми з використанням алгоритму Брезенхема виведення вiдрiзкiв та дуг елiпсiв.

4. Оформити звiт з лабораторної роботи i провести її захист.

Питання до лабораторної роботи

1. Канонiчне рiвняння елiпса. Загальне рiвняння елiпса i зведене рiвняння елiпса з центром i пiвосями, якi паралельнi загальній системi координат.

2. Алгоритм Брезенхема побудови дуги елiпса у першому квадрантi. Переваги та недолiки методу.

3. Цiлочисельний алгоритм Брезенхема розкладу в растр елiпса у будь-якому квадрантi. Переваги та недолiки методу.

Приклад органiзацiї вхiдного файлаBresCirc.inp

-1 8

1 L 0 0 0 10

2 L 0 10 5 10

3 C 6 11 1 4

4 L 6 11 6 9

5 C 5 9 1 4

6 L 5 8 2 8

7 L 2 8 2 0

8 L 2 0 0 0

-2 22

1 L 0 2 0 8

2 C 2 8 2 2

3 L 2 10 4 10

4 C 4 8 2 1

5 L 6 8 6 6

6 C 4 6 2 4

7 L 4 4 2 4

8 C 4 4 2 3

9 L 4 2 6 2

10 C 6 0 2 4

11 L 4 0 2 0

12 C 2 2 2 3

13 C 5 7 1 1

14 C 5 7 1 2

15 C 5 7 1 3

16 C 5 7 1 4

17 C 2 11 1 2

18 L 2 12 2 11

19 L 2 11 1 11

20 C 4 11 1 1

21 L 5 11 4 11

22 L 4 11 4 12

15 10 20

Тут записано також двi лiтери. Код лiтери завжди вiд'ємне число (першої -1, другої -2). Далi, при кодi лiтери, вказанi число примiтивiв у контурах (перша лiтера має 8 примiтивiв, друга -- 22). Кожен контур складається або з вiдрiзку "L Xпочатку Yпочатку Xкiнця Yкiнця", або чвертi кола "С Xцентру Yцентру Радiус N", де N - номер чвертi кола при обходi його у сторону, протилежну до стрiлки годинника.

До цiєї iнформацiї також додаються числа x, y, b (див. приклад вхuiдного файла до лаб. Роботи BresLine). Тому у кiнцi файла BresСirс.inp наведено вiдповiдний рядок 15 10 20 тобто, x=15, y=10, b=20

 

3.4 Лабораторна робота FloodLine на тему "Заповнення полiгональних фiгур".

Мета. Студент повинен навчитись заповнювати двовимiрнi полiгональнi моделi типу замкнених контурiв ("лiтер") з використанням одного з алгоритмiв растрової заливки багатокутникiв.

Завдання. Доповнити програму лабораторної роботи BresLine одним з алгоритмiв растрового заповнення багатокутникiв (див. питання до лабораторної роботи).

 

Хiд виконання.}

1. Доповнити програму лабораторної роботи BresLine процедурою, яка є реалiзацiєю одного з алгоритмiв растрового заповнення багатокутникiв.

2. Оформити звiт з лабораторної роботи i провести її захист.

Питання до лабораторної роботи

1. Поняття растру.

2. Растрова розгортка у реальному часi. Переваги та недолiки цього методу.

3. Групове кодування. Переваги та недолiки цього методу.

4. Кодування за чарунками. Переваги та недолiки цього методу.

5. Використання буфера кадру. Переваги та недолiки цього методу.

6. Растрова розгортка багатокутникiв. Принцип "одної другої".

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

8. Алгоритм заповнення за ребрами.

9. Алгоритм заповнення за ребрами з перегородкою.

10. Алгоритм заповнення зi списком ребер i прапорцем.

 

3.5 Лабораторна робота FloodCirc на тему "Заповнення довiльних областей".

Мета.Студент повинен навчитись здiйснювати заповнення довiльних областей за допомогою рiзних алгоритмiв заповнення iз зачипкою.

Завдання. Здiйснити заповнення областi, яка побудована у лабораторнiй роботi {\it BresCircle} за допомогою простого алгоритму заповнення iз зачiпкою, а також здiйснити заповнення областi, яка побудована у лабораторнiй роботi BresEllips за допомогою строкового алгоритму заповнення iз зачiпкою.

Хiд виконання.

1. Доповнити програму лабораторної роботи BresCircle заповненням контурiв "лiтер" з використанням простого алгоритму растрового заповнення багатокутникiв iз зачiпкою (див. Питання до лабораторної роботи).

2. Доповнити програму лабораторної роботи BresEllips заповненням контурiв "лiтер" з використанням строкового алгоритму растрового заповнення багатокутникiв iз зачiпкою (див. Питання до лабораторної роботи).

3. Оформити звiт з лабораторної роботи i провести її захист.

Питання до лабораторної роботи

1. Чотирьох - та восьми -зв'язнi областi. Зв'язок з алгоритмами Брезенхема.

2. Простий алгоритм растрового заповнення багатокутникiв iз зачiпкою. Переваги та недолiки методу.

3. Строковий алгоритм растрового заповнення багатокутникiв iз зачiпкою. Переваги та недолiки методу.

 

ЛІТЕРАТУРА

[1] Ньюмен У., Спрул Р. Основы интерактивной машинной графики. - М.: Мир, 1976.

[2] Роджерс Д.Ф., Адамс Дж. Математические основы машинной графики. - М.: Машиностроение, 1980.

[3] Роджерс Д., Адамс Дж. Математические основы машинной графики. 2-е изд. - M.: Мир, 2001.

[4] Уилтон Р. Видеосистеми персональних компютероа IBM PC и PS/2. Руководство по программированию. - М.: Радио и связь, 1994.

[5] Роджерс Д.Ф. Алгоритмические основы машинной графики. - М.: Мир, 1989.

[6] Фоли Дж., Вэн Дэм А. Основы интерактивной машинной графики. В 2-х т. - М.: Мир, 1985.

[7] Фоли Дж., Уоллес В. Искуство организации естественного графического диалога человек - машина. - ТИИЭР, 4, 1974.

[8] Порев В.Н. Компьютерная графика. - СПб.: БХВ-Петербург, 2002.

[9] Чумак О.О., Чупринка В.I. Програмування графiки в системi програмування Delphi. - K.: КНУТД, 2001.

[10] Янг М. Программирование графики в Windows 95. - М.: Бином, 1997.

[11] Абраш М. Таинства программирования графики. - К.: ЕвроСИБ, 1995.

[12] Bresenham J.E. Algorithm for Computer Control of a Digital Plotter, IBM System Journal, Vol. 4 (1965), pp. 25-30.

[13] Вельтмандер Н.В. Основные алгоритмы компьютерной графики. Машинная графика. (Учебное пособие в 3-х книгах), Книга 2. - Hовосибирск: НГУ, Факультет автоматики и вычислительной техники, Кафедра вичислительной техники (специальность 220100), 1997.

[14] Pitteway, M.L.V. Algorithm for Drawing Ellipses or Hyperbolae with a Digital Plotter, Computer Journal, Vol. 11 (1967), No. 3, pp. 282-289

[15] Jordon, B.W., Lennon, W.J., and Holm, B.D. An Improved Algorithm for the Generation of Nonparametric Curves, IEEE Trans. Comput., Vol. C-22 (1973), pp. 1052-1060.

[16] Belser, K. Comment on "An Improved Algorithm for the Generation of Nonparametric Curves, IEEE Trans. Compu., Vol. C-25 (1976), pp. 103

[17] Ramot, J. Nonparametric Curves, IEEE Trans. Comput., Vol. C-25 (1976), pp. 103-104.

[18] Horn B.K.P.D. Circle Generators for Display Device, Computer Graphics and Image Processing, Vol. 6 (1977), pp. 589-593.

[19] Badler, N.I., Disk Generator for a Raster Display Device, Computer Graphics and Image Processing, Vol. 6 (1977), pp. 589-593.

[20] Doros M. Algorithms for Generation of Discrete Circles, Rings, and Disks, Computer Graphics and Image Processing, Vol. 19 (1979), pp. 366-371.

[21] Suenada, Y., Kamae, T., and Kobayashi, T., A High-speed Algorithm for the Generation of Straiht Lines and Circular Arcs, IEEE Trans. Comput.}, Vol. C-28 (1979), pp. 728-736.

[22] Bresenham J.E. A Lineat Algorithm for Incremental Digital Display of Circular Arcs, CACM, Vol. 20 (1977), pp. 100-106

[23] Jordon, B.W., Barren, R.C. A Cell Organized Raster Display for Line Drawnings, CACM, Vol. 17 (1974), pp. 70-77.

[24] Хилл Ф. OPEN GL. Программирование компьютерной графики. - М.СПб.: Питер, 2002.

[25] Pitteway, M.L.V., and Watkinson, D.J. Bresenham Algorithm with Gray Scale, CASM, Vol. 23 (1980), pp. 625-626.

[26] Борецков А.В., Шикин Е.В., Шикина Г.Е. Компьютерная графика: первое знакомство. - М.: "ФИНАНСЫ И СТАТИСТИКА", 1996.

[27] Гилой В. Интерактивная машинная графика. Структуры данных, алгоритмы, языки. - М.: "МИР", 1981.

[28] Иванов В.П., Батраков А.С. Трехмерная компьютерная графика. - М.: "РАДИО И СВЯЗЬ", 1995.

[29] Лапшин Е. Графика для РС. - М.: "СОЛОН", 1995.

[30] Ласло М. Вычислительная геометрия и компьютерная графика. - М.: Бином, 1997.

[31] Никулин Е.А. Компьютерная геометрия и алгоритмы машинной графики. - СПб.: БХВ-Петербург, 2003.

[32] Препарата Ф., Шеймосв М. Вычислительная геометрия: Введение. - М.: "МИР", 1989.

[33] Усовершенствованная графика в СИ. Методы программирования. Часть 1-2. - М.: "И.В.К.-СОФТ", 1991.

[34] Шикин Е.В., Боресков А.В. Компьютерная графика. Полигональные модели. - М.:"ДИАЛОГ-МИФИ", 2000.

 

 

1 Вступ.................................................................................................................... 3

1.1 Витоки i розвинення графiчного представлення iнформацiї........................ 3

1.2 Сфери використання.......................................................................................... 3

1.3 Головнi поняття i операцiї................................................................................. 3

1.4 Типи графiчних приладiв.................................................................................. 4

2 Алгоритми растрової графiки.............................................................. 6

2.1 Растрова i векторна графiка............................................................................. 6

2.1.1 Цифровий диференцiйний аналiзатор............................................................ 6

2.1.2 Алгоритм Брезенхема побудови вiдрiзкiв..................................................... 8

2.1.3 Алгоритм Брезенхема креслення кола......................................................... 11

2.1.4 Алгоритм Брезенхема побудови елiпса....................................................... 15

2.2 Растрова розгортка багатокутникiв.............................................................. 19

2.2.1 Алгоритм заповнення з упорядкованими списками ребер......................... 22

2.2.2 Алгоритм заповнення за ребрами................................................................ 27

2.2.3 Алгоритм заповнення iз списком ребер i прапорцем................................. 31

2.2.4 Простий алгоритм заповнення iз зачiпкою................................................. 34

2.2.5 Алгоритм заповнення по рядкам iз зачiпкою.............................................. 40

2.3 Ефект драбини.................................................................................................. 46

3. Лабораторнi роботи................................................................................. 47

3.1 Лабораторна робота BresLine на тему "Виведення вiдрiзкiв прямих за алгоритмом Брезенхема"...................................................................................... 47

3.2 Лабораторна робота BresCirc на тему "Виведення дуг кола за алгоритмом Брезенхема"............................................................................................................. 49

3.3 Лабораторна робота BresEllips на тему "Виведення елiпсiв за алгоритмом Брезенхема"............................................................................................................. 50

3.4 Лабораторна робота FloodLine на тему "Заповнення полiгональних фiгур". 51

3.5 Лабораторна робота FloodCirc на тему "Заповнення довiльних областей". 52

4. ЛІТЕРАТУРА...................................................................................................... 52

 

© 2013 wikipage.com.ua - Дякуємо за посилання на wikipage.com.ua | Контакти