Нехай рівняння кола (x-a)^2+(y-b)^2=R^2- підставляємо координати кінців дуги у це рівняння і знаходимо координати центра точку (а;b). Знаходимо координати середини хорди, який з'єднує кінці дуги. складаємо рівняння прямої яка проходить через центр і кола і середину хорди. знаходимо координати точок перетину цієї прямої з колом. Вибираємо потрібну точку. Did
Оскільки задано дві точки на колі можливо потрібно розв'язати систему рівнянь? Але я не знаю як виразити одну змінну в рівнянні щоб підставити в іншу. Особливі труднощі виникають з розкриттям квадрату двочлена. Інший спосіб більш грубий і довгий це знайти довжину хорди sqrt(pow(x1 - x2) + pow(y1-y2)) Оскільки радіус кола і середина хорди утворюють прямокутний трикутник можна знайти кут між хордою і радіусом acos(hord/2 / R) Потім знайти кут між хордою і вісю Х acos((x1-x2) /hord). Якщо відняти "перший" кут від "другого" можна знайти кут між радіусом і вісю Х а уже за цим кутом координати центра першого кола а згодом і другого кола. Проте повинен бути більш простіший спосіб (як для дітей) . Оскільки задача є досить поширеною.
Повідомлення відредагував Михайло - П`ятниця, 29.05.2020, 02:57
Система розв'язується просто. З рівняння прямої ( серединного перпендикуляра до хорди) визначаємо х або у і підставляємо це значення у рівняння кола та отримуємо квадратне рівняння. Did
Все вірно. Потім складаєте рівняння прямої яка проходить через точки (a;b) і ((x1+x2)/2;(y1+y2)/2) та знаходите точки її перетину з отриманим колом. Спробуйте це пробити на конкретному прикладі. У загальному випадку перетворення занадто громіздкі. Did
Я зрозумів 1. Знаходимо координати центра хорди нехай hx=(x1+x2) /2 hy=(y1+y2) /2 2. Переносимо відрізок hx, hy; x1, y1 в початок координат і отримуєм вектор (vx, vy) vx=x1-hx, vy=y1-hy 3. Знаходимо вектор перпендикулярний до отриманого вектора (vx1=vy*-1; vy1=vx) 4. Знаходимо довжину вектора L=sqrt(pow(vx) +pow(vy)) 5. Знаходимо відстань від центрів кіл до хорди L1=sqrt(pow(R ) - pow(L)) 6. Знаходимо вектори які мають тойже напрямок що і знайдений вектор але з довжиною L1 vx2=vx1/L*L1 vy2=vy1/L*L1 7. Знаходимо вектор протележно направлений vx3=vx2*-1 vy3=vy2*-1 8. Знаходимо координати центрів кіл a1=vx2+hx b1=vy2+hy a2=vx3+hx b2=vy3+hy Хоч даний спосіб і є досить довгий мені він повністю підходить. Можливо комусь також знадобиться. Якщо потрібно можу усе відобразити графічно. Admin дякую за підказки ідея розпочати із знаходження центра хорди допомогла знайти мені потрібний розвязок
Повідомлення відредагував Михайло - Середа, 17.06.2020, 01:49