Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Grafika_Shpora.doc
Скачиваний:
117
Добавлен:
23.02.2016
Размер:
839.17 Кб
Скачать

22.Алгоритми виведення ліній.

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

Оскільки практично ві сучасні засоби відображення графіки(диспелі,принтери) растрові,для відображення картинки,заданої у векторному виді,необхідно перетворити у растр.Таке перетворення звичайно виконується тією програмою,у якій зображення було сворено,з використанням алгоритмів растеразації.Для того,щоб перетворити в растр лінію,необхідно змінити колір пік селів,поя яких ця лінія проходить.Щоб це зробити необхідно одержати рівняння лінії.Очевидно,найбільш простим графічним примітивом є відрізок прямої,який можна задати координатами двох точок:початку(х1,y1) і кінця(х2,y2).Для довільної точки (х,y).що лежить на відрізку прямої,має виконуватись умова :

Звідси можемо одержати рівняння прямої як функцію yвід х навпаки:

Очевидно,що дріб у рівнянні являє собою кутовий коефіцієнт і при побудові може бути обчислена один раз.Для пастеризації відрізка слід з*ясувати,яка з величин dx=x2-x1 таdy=y2-y1 є більшою ,і побудувати «графік» функціїy=f1(x) у першому або х=f2(y) у другому випадку.Виконується простий цикл по відповідній координаті від початкової до кінцевої точки з кроком в один пік сель.

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

1.Визначаємо величини збільшень dx=x2-x1;dy=y2-y1

2.Вибираємо більше зі збілішень dx>dy,значитьd=dx

3.Уводимо поточні координати х і y,а такж допоміжні перемінні ех і еy.До початку циклу приймаємо х=х1;,y=y1;ex=0;ey=0;Зафарбовуємо пік сель з координатами (x,y)

4.Виконуємо dраз цикл,у якому перемінні ех і еyзбільшуємо відповідно наdxіdyта перевіряємо:

Якщо ех>d-виконуємо ех=ех-dі х=х+1;

Якщо ey>d – ey=ey-d і y=y+1.

23. Поясніть суть кривих Без’є та області їх застосування

Розроблені математиком П’єром Безьє, криві і поверхні Безье були використані в 60-х роках компанією «Рено» для комп’ютерного проектування форми кузовів автомобілів. Зараз вони широко використовуються в комп'ю­терній графіці та моделюванні.

Криві Безье описуються в параметричній формі: {x=fx(t), y=fy(t)}, деtвиступає як параметр, якому відповідають координати окремої точки лінії.

Класифікація по точках-орієнтирах:

2 точки – крива 1-го порядку;

3 точки – крива 2-го порядку;

4 точки – крива 3-го порядку.

Крива Безье 3-го порядку може мати різноманітну форму, що дозволяє використовувати для побудови різних ліній, фігур, контурів довіль­ної форми. Криві Безье є основними графічними примітивами більшості вектор­них графічних редакторів «художнього» призначення (наприклад. Corel Draw. Adobe Illusttrator), а також використовуються в інженерних і архітектурних пакетах (AutoCAD. ArchiC'AD. КОМПАС-3D) для моделювання об'єктів складної форми.

Існує алгоритм побудови кривих Безьє, не потребуючий виконання складних обчислень, зведення в ступінь. Це геометричний алгоритм:

  1. Кожне ребро ламаної лінії, що проходить по точках-орієнтирах. поділя­ється пропорційно значенню t.

  2. Точки розподілу з'єднуються відрізками прямих і утворюють нову ламану лінію. Кількість вузлів нової ламаної на одиницю менше, ніж кількість вузлів попередньої.

  3. Сторони нової ламаної лінії знову поділяються пропорційно значенню t. Так продовжують доти, доки не буде отримана єдина точка розподілу. Ця точка і буде точкою кривої Безьє.

Для створення складних кривих ліній використовуються полілінії Безье — декілька кривих Безьє. що зістиковані разом і утворюють єдиний графічний примітив. Полілінії Безьє можуть бути як розімкнутими, так і замкнутими. В останньому випадку одержуємо контур із криволінійними границями, який може бути, наприклад, заповнений деяким кольором за допо­могою алгоритму заповнення.Точки, у яких виконується стикування окремих кривих Безьє називаються вузлами полілінії. У залежності від способу стикування сусідніх кривих вузли полілінії Безьє можуть бути:

  • гладкими, (стикування кривих з вирівнюванням по першій і другій похідних) — у таких вузлах виконуються умови збігу напрямків дотичних до обох кривих і однакових радіусів кривизни обох кривих у точці стикування;

  • прямими (стикування з вирівнюванням по першій похідній) — вико­нується умова збігу напрямків дотичних до обох кривих у точці стикування, радіуси кривизни можуть бути різними;

  • кутовими (довільне стикування) — і напрямки дотичних до обох кривих і радіуси кривизни можуть бути різними.

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