Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Приклад 1Розглянемо відрізок, проведений з точки (0, 0) в точку (5, 5). Розкладання відрізка в растр по алгоритму Брезенхема приводить до наступного результату: початкові установки Результати покрокового виконання основного циклу
Результат показано на рис. 2.4 і він співпадає з очікуваним. Рис. 2.4. Результат роботи алгоритму Брезенхема в першому октанті Зазначимо, що точка растру з координатами (5, 5) не активована. Її можна активувати зміною умов циклу for- next на 0 to D x. Активацію точки (0, 0) можна ліквідувати, якщо поставити оператор Plot безпосередньо перед рядком next i. Алгоритм Брезенхема розглянутий нами вимагає використання арифметики з плаваючою точкою і ділення (для обґрунтування кутового коефіцієнту і оцінки похибки). Швидкодію алгоритму можна збільшити, якщо використовувати тільки цілочисельну арифметику і виключити ділення. Оскільки важливим є тільки знак похибки, то просте перетворення перетворить попередній алгоритм в цілочисельний і дозволить реалізувати його на апаратному та мікропрограмному рівнях. Модифікований цілочисельний алгоритм для першого октанту, тобто для , виглядає наступним чином Цілочисельний а лго рит м Брезе нхема роз кладу в р ас тр відрізк а для першого о кт а нт у передбачається, що кінці відрізку і не сп ів п а д а ють і всі змінні — ц іл і
ініціалізуємо з поправкою на половину піксела початок основного циклу for i = 1 to D x Plot (x, y) while
end while Щоб реалізація алгоритму Брезенхема була повною, необхідно обробляти відрізки у всіх октантах. Модифікацію легко зробити, враховуючи в алгоритмі номер квадранту, в якому лежить відрізок і його кутовий коефіцієнт. Коли абсолютна величина кутового коефіцієнту більша 1, y постійно змінюється на 1, а критерій похибки Брезенхема використовується для прийняття рішення про зміну величини x. Вибір постійно змінюваної (на 1 або -1) координати залежить від квадранту (рис. 2.5). Рис. 2.5. Розгляд випадків для узагальненого алгоритму Брезенхема Загальний цілочисельний алгоритм Брезенхема для всіх квадрантів виглядає наступним чином: передбачається, що кінці відрізку і не співпадають і всі змінні вваж а ються цілими функція sign повертає –1, 0, 1 для від’ємного, нульового і додатного аргументу відповідно ініціалізація змінних обмін значень D x і D y залежить від кутового коефіцієнту нахилу відрізку
|