Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Rozrah_KG.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
210 Кб
Скачать
☆

Практичне завдання Постановка задачі та можливі шляхи її розв’язання

Задача полягає у розробці комп’ютерної системи генерування, переміщення і масштабування геометричних фігур з можливістю вибору геометричної фігури.

Прямокутник складається з сторін, які можна побудувати за допомогою алгоритму Бразенхейма для побудови ліній. Для цього нам потрібно задати координати точок, для побудови відрізків. Алгоритм Брезенхейма  визначає які точки в n-вимірному растрі мають бути накреслені для формування близького наближення для прямої лінії між двома заданими точками. Він загально використовується для малювання ліній на екрані через те, що використовує тільки цілочисельну суму, віднімання та бітові операції, всі ці операції дуже «дешеві» в стандартній архітектурі комп'ютерів. Це один з перших алгоритмів розроблених в галузі комп'ютерної графіки. Незначно розширений початковий алгоритм також обробляє малювання кіл.

Хоча алгоритм також часто використовується в сучасній комп'ютерній графіці через підтримку згладжування, алгоритм Брезенхейма залишається вживаним завдяки його швидкісті і простоті. Алгоритм використовується в графобудівниках і графічних процесорах сучасних відеокарт. Також його можна знайти в багатьох програмних графічних бібліотеках. Через свою простоту алгоритм часто реалізується або як вбудована програма або як апаратне забезпечення сучасних відеокарт.

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

Опис використаного методу вирішення та його обґрунтування

Алгоритм Брезенхэема (англ. Bresenham's line algorithm) — це алгоритм,

який визначає, які точки двохвимірного растру необхідно замалювати, щоб

отримати найближче приближення прямої лінії між двома заданими точками.

Це один з найстаріших алгоритмів в машинній графіці — він був розроблений

Джеком Е. Брезенхемом (Jack E. Bresenham) в компанії IBM в 1962 році.

Алгоритм широко застосовується, для малювання ліній на екрані комп’ютера.

Існує узагальнення алгоритму Брезенехема для побудови кривих другого

порядку.

Так як приріст координат, як правило, не є цілим степенем двійки, то в

ЦДА-алгоритмі необхідно виконати ділення, що не завжди підходить,

особливо при апаратній реалізації.

Брезенхем запропонував алгоритм, що не потребує ділення, як і в

алгоритмі несиметричного ЦДА, але забезпечу чий мінімізацію відхилення

згенерованого образу від істинного відрізку, як в алгоритмі звичайного ЦДА.

Основна ідея алгоритму полягає в том, що якщо кутовий коефіцієнт прямої <

1/2, то звичайно точку, наступну за точкою (0,0), поставить в позицію (1,0)

(рис. а), а якщо кутовий коефіцієнт > 1/2, то - в позицію (1,1) (рис. б). Для

прийняття рішення куди заносити наступний піксель вводиться величина

відхилення Е точної позиції від середини між двома можливими растровими

точками в напрямку найменшої відносної координати. Знак Е

використовується як критерій для вибору найближчої растрової точки.

Якщо Е < 0, то точне Y-значення округлюється до останнього меншого

цілочисельного значення Y, тобто. Y-координата не змінюється в порівнянні з

попередньою точкою. В іншому випадку Y збільшується на 1.

Хоча алгоритм Брезенхема був спочатку розроблений для цифрових

систем побудови графіків, однак він рівною мірою підходить для використання

растровими пристроями з ЕПТ. Алгоритм вибирає оптимальні растрові

координати для представлення відрізка. У процесі роботи одна з координат -або x, або y (в залежності від кутового коефіцієнта) - змінюється на одиницю.

Зміна іншої координати (на 0 або 1) залежить від відстані між дійсним

становищем відрізка і найближчими координатами сітки. Таку відстань ми

назвемо помилкою.

Алгоритм побудований так, що потрібно перевірити лише знак цієї

помилки. На рис.4 це ілюструється для відрізка в першому октантs, тобто длявідрізка з кутовим коефіцієнтом, що лежить в діапазоні від 0 до 1. З малюнка

можна помітити, що якщо кутовий коефіцієнт відрізка з точки (0,0) більше, ніж 1/2, то перетин з прямою x = 1 буде розташовано ближче до прямої y = 1, ніж до прямої y = 0. Отже, точка растра (1,1) краще апроксимує хід відрізка, ніж точка (1,0). Якщо кутовий коефіцієнт менше 1/2, то вірно зворотне. Для кутового коефіцієнта, рівного 1/2, немає якого або кращого вибору. У даному випадку алгоритм вибирає точку (1,1).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]