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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



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

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

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

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

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

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

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

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

Вхідні дані: x1, y1 i R1 - коорди­нати центра О1 і радіус першого кола; x2, y2 i R2 — координати центра і радіус дру­гого кола, R — радіус спряжувального кола; k - коефіцієнт вибору спряжупальної дуги.

Вихідні дані: xc, yc - координати центра спряжувальноЇ дуги; tп — кутовий параметр початкової точки спряжувальної дуги; tд — кутовий параметр спряжуваль­ної дуги.

Обчислення міжцентрової відстані:

                                  (1.46)

Нехай

.                            (1.47)

Перевірка сумісності умов. Задача має роз­в'язок, якщо:

,                                      (1.48)

або

,                                 (1.49)

або

                              (1.50)

або

                    (1.51)

За допомогою алгоритму визначення координат точок перетину двох кіл, радіу­си яких ||R|-R1| тa ||R|-R2| (див. коло), знаходять у локальній системі з по­чатком у О1 та віссю О'х', що збігається з 0102 (рис. 1.12),

                             (1.52)

Координати точки контакту спряжувального кола з першим колом:

                             (1.53)

Координати точки спряження з другим колом:

                           (1.54)

Співвідношення (1.53) та (1.54) діста­ли з розрахунку подібних трикутників.

Визначення компонент повороту локаль­ної системи x'О’у’ відносно глобальної xOy:

.                            (1.55)

 
Рис.1.12

 


Обчислення глобальних координат цен­тра спряжувального кола та координати точок спряження за формулами:

                               (1.56)

Обчислення кутового параметра точок спряження відносно центра спряжувально­го кола:

.                                      (1.55)

Ви'значення кутового параметра спряжувальної дуги:

.                                           (1.58)

Якщо k = 0 і |t| > п або k = 1 і |t[ < л, то

.



Поделиться:


Последнее изменение этой страницы: 2020-03-02; просмотров: 120; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.147.215 (0.007 с.)