Взаимно разположение на две окръжности
Дадени са дължините на радиусите на две окръжности R1, R2, както и координатите на техните центрове O1(X1,Y2) и O2(X2,Y2), всички те са естествени числа от интервала [1..1001]. Търсим взаимното разположение на тези две окръжности.
Алгоритъм:
Всички разсъждения са на основа сравнение - разстояние между центровете на тези две окръжности и сумата/разликата от дължините на техните радиуси.
От данните за координатите на двата центъра се разбира дали двете окръжности са:
а) концентрични (центровете им съвпадат) или
б) ексцентрични (центровете им не съвпадат).
Ако двете окръжности са концентрични има следните възможни положение:
а) двете окръжности са идентични - ако имат еднакви радиуси;
б) двете окръжности са вписани една в друга - ако имат различни радиуси.
За точното определяне на останалите случаи трябва да се изчисли тяхното междуцентрово разстояние - по формулата на Питагор.
L = sqrt ((X1-X2)*(X1-X2) + (Y1-Y2)*(Y1-Y2)) - корен квадратен от квадратите на разликите на координатите по абсциса и ордината на двата центъра.
В следващите разсъждения ще използваме абсолютна стойност на разликата от двата радиуса - abs(R1-R2)
Ако окръжностите са ексцентрични възможностите за тяхното взаимно положение са доста повече:
а) двете окръжности са вписани (лежат една в друга) и нямат допирна точка, ако междуцентровото разстояние е по-малко от абсолютната стойност на разликата между двата радиуса: L<abs(R1-R2)
б) двете окръжности са вписани, но имат една допирна точка L=abs(R1-R2) - допират се вътрешно, където междуцентровото разстояние е равно на абсолютната стойност от разликата между двата радиуса
в) двете окръжности се пресичат при (L>abs(R1-R2) ) and (L< (R1+R2)) - междуцентровото разстояние е по-голямо от абсолютната стойност на разликата от двата радиуса, но е по-малко от тяхната сума;
г) двете окръжности не са вписани, но имат една външна допирна точка L=R1+R2 - допират се външно междуцентровото разстояние е равно на сумата от двата радиуса
д) двете окръжности не са вписани и нямат допирна точка L>R1+R2
Следващата примерна програма дава решена задача за взаимно разположение на две окръжности като се използва сравнение между квадратите (втората степен) на тяхното междуцентрово разстояние, сумата и разликата на двата радиуса.
Обяснени и решени задачи с подобни алгоритми, функции и служебни думи са разгледани в страницата с електронни уроци по информатика - програмиране.
Илюстриране работата на характерни алгоритми можете да намерите в предоставените електронни помагала съдържащи решени задачи, примери.