русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Розподіл середньою точкою


Дата додавання: 2013-12-23; переглядів: 1315.


Відрізок можна розділити середньою точкою і таким шляхом обійтися без безпосереднього визначення точки перетину з краями екрану.

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

1) Один з кінців вихідного відрізка може бути видимим.

 
а б
 
 
 
 

В цьому випадку одна з його половин або повністю видима (а) або відкидається за найпростішим правилом (б). Тоді алгоритм застосовується до іншої половині відрізка.

2) Якщо дві кінцеві точки вихідного відрізка невидимі, то кожна з половин розглядається окремо.

 
 
 
 
 
 
 
 
 
а
б
с ю,

Обидві половини можуть бути відкинуті за простішим правилом, (с) – невидимий весь відрізок. В іншому випадку за най­простішим правилам може бути відкинута одна половина (а). В третьому випадку середня точка помітна й не одну з половини відкинути не можна. У цьому випадку алгоритм застосовується до обох половин.

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

4.12 Поля індикації

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

4.13 Вікна

Процес підготовки до виведення на екран зображення під­даного перетворенням виконується в два етапи:

На початку зображення перетворюється в координати екрану, а потім відсікаються частини, що виходять за межі поля індикації. Виконання процесу в такому порядку при­зводить до деяких зайвих витрат. Можна піддати перетво­ренню велике число відрізків і в кінці-кінців можна пере­конатися, що більшість з них знаходиться поза межами екрану. Набагато раціональніше “впізнавати” невидимі лінії до їх перетворення і уникнути непотрібних витрат часу на пере­творення. Це можна здійснювати шляхом кадрування за допомогою вікна, яке представляє собою відображення поля індикації в координатах вихідного зображення до його перетворення. Вікно завжди являє собою прямокутну область. Форма у нього завжди така ж, як і в поля індика­ції, за умови, що зображення масштабується однаково по осях xі y.

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

 

4.14 Перетворення кадрування

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

1) Вважатимемо, на початку, що весь екран є полем індикації. Виберемо вікно центр якого розташований у точці (Wcx, Wcy) в системі координат листа.

 

Рис.20 – Поле індикації покриває весь екран

 

Розмір вимірюється від центру (Wsx, Wsy) відповідно в напрямку осей X і Y. Рівняння, що визначають перетворення точки Xр Yp листа в точку XsYs екрану мають вигляд:

 

 

(4.12)

Позначення, що використовуються в правих частинах рівнянь, виражені у координатах листа. Це означає, що Xs Ys є безрозмірними величинами і представляють відхилення променя від центральної точки екрану при при­пущенні, що координати екрану змінюються від -1 до +1.

Можна використовувати також поле індикації, що не покриває весь екран. Будемо вважати, що це поле має центр (Vcx, Vcy) і розміри Vsx, Vsy вимірюються від центру. Все в координатах екрану:

 

 

Рис.21 – Поле індикації покриває частину екрану

 

Тоді точка Xр, Yp в координатах листа відображається в точку Xs, Ys на екрані за допомо­гою перетворення:

(4.13)

Безрозмірні величини в рівнянні (4.12) тут розглядаються як частки максимального співвідношення в межах поля індикації. Положення на екрані визначається додаванням зміщення поля індикації від початку координат.

Одна із зручних властивостей системи координат листа полягає в тому, що ця система дозволяє користуватися будь-якими одиницями виміру. Розмір для креслення будівлі можна задавати в сантиметрах, для машинобудівних креслень – в міліметрах, для геогроафічних карт – в кілометрах. Можна взагалі не називати одиниці виміру при формуванні зображення блоксхеми або електричного кола.

4.15 Прив'язки

Лист являє собою систему координат, в якій зображення формується в будь-яких довільних координатах. Після закінчення формування зображення шляхом задання вікна вказують частину зображення, що виводиться. Цей підхід до формування зображення можна поширити на зображення, що містять повторювані символи. Самі символи можуть бути сформовані в деякій довільній системі координат, а потім включені до складу зображення із зазначенням, де і в якому масштабі вони повинні з'являтися. При такому використанні символу формується його прив'язка – підпрограма, піддана перетворенню кадрування. Сам символ сформований заздалегідь і зберігається в іншому місці у вигляді так званої основної копії. При включенні символу в зображенні вказується не тільки його ім'я, а й перетворення, якому він має бути підданий, так зване перетворення прив'язки. Основна копія символу формується у власній основній координатній системі, що має власний місцевий початок відліку. Часто зручно використовувати різні одиниці вимірювання в основній копії і на аркуші.

 

 

Рис.22 – Прив’язка

 

Нехай точка в основній копії має положення Xm, Ym в основних координатах. Для прив'язки задаються в координатах листа по­ложення центру на аркуші і розміри Jcx, Jcy.

 

Xp= Xm Jsx+ Jcx

(4.14)

Yp= Ym Jsy+ Jcy

Точка Xm, Ym перетворюється в точку Xр, Yр.

Передбачається, що діапазон зміни основних координат складає 1 і, що основна копія повністю перетвориться в прив'язку (що не обов'язково). Можна вибрати частину символу і відтворити його на аркуші.

 

Рис.23 – Прив’язка

 

У цьому випадку на основній копії вибираємо вікно з центром Mcx, Mcy і розмір Msx, Msy. Перетворення в цьому випадку має вигляд:

 

 

(4.15)

 

Явна схожість з рівнянням (4.13) для перетворення в лист екрану. Очевидно, що для обох операцій можна користуватися однією і тією ж процедурою перетворення. Більш того можна поєднати два лінійних перетворення: символ → координати листа → координати екрану.

Таким чином, можна здійснювати безпосередньо перетворення з основних координат в координати екрану. Проте, слід звернути увагу на правильність виконання прив'язки.

 

 

4.16 Висічка

Поєднання перетворень кадрування не завжди буває таким простим, як в рівняннях Xq = f (хm), оскільки співвідношення між вікном і прив'язкою може бути змінним. (Такий випадок представлений на малюнках). У кожному разі заштриховані видимі на екранній області в основній системі координат і відповідний прямокутник, який вона займає на екрані. Ці дві області можна вважати повністю відповідними вікну і полю індикації: вони визначають, які частини основної копії видно, і де вони повинні з'явиться на екрані. Кожен відрізок символу врізається в заштриховане вікно в поле визначення символу, а потім відображається на екрані дисплея за допомогою використання рівняння: Xs = f (хm). Операція з обчислення розмірів і положення вікна в полі визначення символу називається висічкою. Зручний спосіб її виконання полягає в тому, що краї поточного вікна перетворюються в основну координатну систему за допомогою перетворення, заданого в рівняннях (4.15). Потім порівнюються краї вікна з відповідними краями основної копії і визначається область перетину. Інший спосіб виявлення випадку коли перетину немає, полягає в тому що одна з діагоналей прив'язки врізається у вікно. Якщо відрізок можна тут же відкинути найпростішим способом, то прив'язка знаходиться повністю поза вікном. Можна отримати значні переваги в швидкості якщо використовувати висічку. Наприклад, дуже велике зображення зібране з багатьох прив'язок, які розглядаються через відносно малі вікна. Майже всі прив'язки будуть розташовуватися повністю поза вікном.


Рис.24 – Висічка

 

При цьому, навіть немає необхідності відсікати лінії, що відносяться до цих прив'язок, можна відразу переходити безпосередньо до наступних прив'язок.

Кількість відрізків, яку в кінцевому рахунку доведеться відсікати, являє собою лише малу частку загального числа ліній в основній копії. Крім того, цей процес, можна виконати на багатьох рівнях. Опис символів може містити прив'язки інших символів. Ці дві особливості операцій по висічці – об’єднання областей кадрування і швидке відкидання невидимих підкартин – роблять висічку зручними засобами в будь-якій графічній системі.

 


<== попередня лекція | наступна лекція ==>
D Операції | Шестопалов С.В.


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн