![]() |
|
![]() ![]() ![]() |
|
BOB4uK |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 28.2.2004 Репутация: нет Всего: нет |
||||
|
||||
Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
надо записать уравнение окружности для каждой окружности и зная, что точка принадлежит каждой из окружности решить систему уравнений
-------------------- |
|||
|
||||
BOB4uK |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 28.2.2004 Репутация: нет Всего: нет |
А как это оформить в универсальный алгоритм для любого кол-ва окружностей?!
|
|||
|
||||
Great Cornholio |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 19.6.2008 Репутация: 1 Всего: 1 |
Берём уравнение 1й окружности и уравнение 2й. Подбором получаем 2 точки. Если 1я точка принадлежит и 3й окружности, то записываем её, если нет, проверяем 2ю. И подставляем значение во все оставшиеся окружности.
|
|||
|
||||
BOB4uK |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 28.2.2004 Репутация: нет Всего: нет |
Спасибо!
Нахожу пересечение двух первых окружностей а потом проверяю полученные точки на пренадлежность к остальным окружнастям по формуле x*x+y*y=r*r Все работает! Супер! |
|||
|
||||
de_Nis |
|
|||
![]() Старательный ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 19.10.2006 Где: Молдова Репутация: нет Всего: 6 |
"...по формуле x*x+y*y=r*r..."
Это формула окружности с центром в точке 0,0 (точке пересечения координатных осей). Судя по рисунку, центры окружностей не обязательно располагаются в точке 0,0. Может быть, правильнее применять более общую формулу (х-х0)*(х-х0)+(y-y0)*(y-y0)=r*r, где x0, y0 - координаты центра окружности? --------------------
Несчастлив не тот, у кого ничего нет, а тот, кто ничего не хочет… |
|||
|
||||
YanTsys |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 22.3.2006 Репутация: нет Всего: нет |
Кроме того если точка окажется в иррациональных координатах то вполне возможна ситуация что общая точка у 1-2 окружности из-за погрешностей вычислений будет не равна общей точке 2-3 окружностей.
В этом случае нужно либо искать совпадение с допустимым отклонением, либо действительно подбирать общее уравнение. Думаю все точки центров окружности образовывают многоугольник а искомая точка отклоняется от его средней точки на величину обратно-пропорциональную величине радиусов окружностей. Вобщем при сравнении точек делайте поправку на погрешность в вычислениях и не заморачивайтесь ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |