Здавалка
Главная | Обратная связь

Алгоритм Брезенхема. Циклічні алгоритми побудови графічних зображень



Мета роботи

Навчитися використовувати алгоритм Брезенхема побудови прямих ліній та циклічні алгоритми для створення складних графічних зображень; створювати власні шаблони ліній та текстур зафарбування графічних об’єктів.

Завдання

1) Розробити процедуру LineBrez побудови відрізків прямих ліній за алгоритмом Брезенхема.

2) Розробити власний шаблон лінії та шаблон текстури зафарбування, які використати потім для побудови зображень, створених у лабораторній роботі.

3) Розробити програму, яка на екрані монитора виводить:

а) інформацію про лабораторну роботу та виконавця;

б) в окремому вікні – складне графічне зображення (див. варіанти завдання) з використанням циклічних алгоритмів.

Увага!

· Для побудови ліній використовувати не оператор Line або LineTo, а створену процедуру LineBrez.

· Програма повинна дозволяти користувачеві змінювати:

- параметри вікна виводу зображення;

- базові параметри зображення, потрібні для його побудови згідно варіанту індивідуальних завдань (такі як радіус, відстань між базовими точками тощо).

4) Придумати власний графічний логотип, який виводити за вказівкою користувача або по завершенню створеної програми.

Для побудови графічного логотипу студента розробити окрему процедуру з використанням циклічних алгоритмів. Логотип повинен будуватися з використанням будь-яких графічних примітивів та власно розроблених стилів ліній та текстур зафарбування. В логотипі відобразити ініціали студента-розробника одним із шрифтів нестандартного розміру літер.

Варіанти завдань

Варіант 1. Програма повинна виводити декілька концентричних “зірок”, що обертаються відносно їх центра побудови. Кожна зірка вписується в коло радіусом R та центром (х0, y0) і повернута відносно попередньої зірки на кут j. Водночас на екрані повинно знаходиться N зірок, всі попередні зірки повинні видалятися. Виведення зірок припиняти при натисканні будь-якої клавіші.

Варіант 2. Програма повинна виводити “блукаючі” спіралі, побудовані з М дуг, тобто центри яких вибираються випадково. Водночас на екрані повинно знаходиться N спіралей, всі попередні спіралі повинні видалятися. Виведення спіралей припиняти при натисканні будь-якої клавіші.

Варіант 3. Програма повинна виводити водночас N планет-сателітів радіусом r, що обертаються відносно центра планети (х0, y0) радіусом R0 по орбіті з радіусом R (R > R0 + r). Водночас на екрані повинно знаходиться N планет-сателітів, тобто всі попередні повинні видалятися. Виведення планет припиняти при натисканні будь-якої клавіші.

Варіант 4. Програма повинна моделювати рух м'ячика радіусом r, що переміщується по прямій лінії усередині заданого вікна прямокутної форми під кутом 45° до сторін цього вікна, відскакуючи від границь вікна подібно справжньому м'ячику. Водночас на екрані повинно відображатися N останніх послідовних позицій м'ячика.

Варіант 5. Програма повинна будувати задану кількість (N) квадратів, кожен наступний всередині попереднього. Спочатку малюється квадрат ABCD, потім на стороні АВ обирається точка А¢ така, що АА¢ = k*АВ, де k < 1. Таким же чином обчислюються координати точок В¢, C¢ та D¢ на сторонах квадрата BC, CD та DA відповідно. Після цього точкам А¢, В¢, C¢, D¢ присвоюються імена A, B, C, D. Далі така процедура повторюється.

Варіант 6. Програма повинна будувати задану кількість (N) трикутників, розміщених усередині один одного, аналогічно тому, як викреслюються квадрати у завданні варіанту 5.

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

Варіант 8. Програма повинна будувати задану кількість (N) шестерень, побудованих відносно випадково вибраних центрів. Параметри програми: радіуси зовнішнього та внутрішнього кола шестірень випадково обчислюються в заданому діапазоні від r до R; N – кількість шестірень; k – кількість зубців шестірень.

Варіант 9. Програма повинна виводити задану кількість (N) п’ятикутних “зірок” різних кольорів у випадково розміщених місцях заданого вікна виводу. Випадковими значеннями обчислюються координати центру та початковий кут побудови кожної зірки, а також її радіус, що змінюється в заданому діапазоні від r до R.

Варіант 10. Програма повинна виводити одночасно задану кількість (N) правильних багатокутників. Всі попередні багатокутники повинні видалятися. Виведення багатокутників припиняти по натисканню будь-якої клавіші. При побудові кожного багатокутника випадково обчислюються кількість кутів (від 3 до М), координати центра та радіус кола (в діапазоні від r до R), в який вписується багатокутник.

Контрольні питання

1. Для чого використовують алгоритм Брезенхема?

2. Опишіть технологію побудови відрізка прямої по алгоритму Брезенхема.

3. Наведіть приклади використання циклічних алгоритмів для побудови графічних зображень.

Література

1. Порєв В.М. Комп’ютерна графіка. – К.: “Корнійчук”, 2000. – С. 70-75.

2. Аммерал Л. Программирование графики на Турбо Си. Пер. с англ. – М.: «Сол Систем», 1992. – С. 121-157.

 








©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.