Реферат: Комп ютерна графіка 2

Поділ дуги кола на рівні частини . Наве­дений вище алгоритм для кола треба мо­дернізувати, замінивши формулу (1.29) на

t= tп (1-s)+( tд + tд ) (1.30)

Решта — без змін. На цьому алгоритмі грунтується програма креслення дуги кола.

Перетин кола та прямої . Щоб знайти координати точок перетину прямої (див-рис. 1.9), заданої у формі (1.2)

Ах + Ву + С = 0, (1.31)

та кола, заданого формою (1.25), знайде­мо рівняння прямої у локальній системі х'О'у’ з початком у центрі кола О' (a,b) (рис. 1.9). За формулами рівняння пря­мої у локальній системі х'О'у'

А(х' +a)+ В(у'+b)+ С=0 або

Ах' + Ву' + С + Аа + Вb = 0. (1.32)

Згідно з (1.16) та (1.17) визначимо полярні параметри прямої (1.32) у системі х'О'у'

,

(1.33)

.

Очевидно, якщо p > R, то розв'язків не існує, якщо р = R, то маємо один розв'язок (дотик), Знайдемо синус та косинус кута

(22.34)

Координати точок перетину прямої з колом у системі

(1.35)

де .

Координати точок перетину у системі хОу маємо

(1.36)

Пряма, дотична до кола та паралельна заданій прямій . Форми задання прямої та кола, віднесення їх до локальної системи х'О'у' та вирази (1.32) і (1.33) такі самі, як і в попередньому алгоритмі. Для дотич­них прямих р = R, а кутовий параметр однієї з точок дотику дорівнює куту нахи­лу до осі О'х' полярного параметра р. Звідси координати точки дотику однієї з шуканих прямих у системі х'О'у' є такими:

(1.37)

де cost і sint визначають за формулами (1.33). Координати точки дотику другої прямої у системі х'О'у'

(1.38)

знаходимо як для точки, симетричної точці () відносно початку О'.

Перехід у глобальну систему хОу здійс­нюється ча формулами (1.36). Якщо хі, уі — знайдені координати точок дотику у системі хОу, то рівняння дотичних прямих дістанемо у вигляді

А(х +х1 )+В(у-уі )= О (і= 1,2), (1.39)

тобто коефіцієнти А і В такі самі, як і в рівнянні заданої прямої, а вільний член С набуває значення

Сі = -Ахі - Вуі . (1.40)

Перетин двох кіл . Розглянемо спочатку випадок окремого розміщення кіл, коли центр першого збігається з початком, а центр другого лежить на осі Ох (рис. 1.10). Задача має два розв'язки, якщо міжцентрова відстань d задовольняє умові (при R1 > R2 )

.

Тут не розглядаємо тривіальні випадки, коли d=R1 -R2 або d= R1 +R2 .

Рівняння першого кола (1.41)

Рівняння другого кола (1.42)

Координати шуканих точок перетину знайдемо як розв'язок системи рівнянь (1.41) і (1.42).

2ах – а2 = ,

звідки

(1.43)

У загальному випадку розміщення (рис. 1.11) при заданих координатах центрів і ра­діусах знаходимо міжцентрову відстань

(1.44)

та компонент повороту локальної системи з початком у центрі першого кола й віссю 0'х’, що збігається з 01 02 , відносно гло­бальної системи хОу :

t=f(x,y). (1.45)

Далі знаходимо xn1,2 , yn1,2 за формулами (1.43) у локальній системі та зводимо результат до гло­бальної системи, враховуючи, що х1=х0, у0=у1, a=t.

Задача спряження двох кіл третім

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

Розв'язати цю задачу креслярськими приладами нескладно. Певні труднощі ви­никають при розробці програмного розв'я­зування цієї задачі засобами комп'ютерної графіки.

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

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

Як відомо, дотик двох кіл може бути зовнішнім або внутрішнім. У загальному випадку існує чотири варіанти дотику шу­каного кола з двома заданими. Ці варіан­ти формалізуються наданням знака "-" чи "+" радіусам заданих кіл. Якщо дотик відповідного кола і шуканого с зовнішнім, то його радіус від'ємний, а якщо внут­рішнім, то додатний.

Ще два варіанти, що відрізняються роз­міщенням центра шуканого кола відносно лінії центрів заданих кіл, формалізуємо наданням знака радіусу спряжувального кола. Якщо центри О1 і О2 заданих кіл не збігаються, то радіус спряжувального кола додатний, коли його центр лежить зліва, та від'ємний, коли його центр лежить справа від вектора 0102.

Центр спряжувального кола, його радіус і точки спряження ще не однозначно ви­значають кутовий параметр спряжувальноЇ дуги. Точки дотику поділяють спряжувальне коло на дві дуги, сума яких дорівнює 2п. Отже значенням коефіцієнта k можна по­ставити у відповідність кожну з двох дуг спряжувального кола. Наприклад, значен­ню k = 0 відповідає менша дуга, k = 1 — більша.

Алгоритм розв'язання в цілому наводи­мо з урахуванням прийнятої формалізації.

К-во Просмотров: 342
Бесплатно скачать Реферат: Комп ютерна графіка 2