4 / 4 / 0
Регистрация: 04.12.2010
Сообщений: 93
|
||||||
1 | ||||||
Пересечение двух окружностей01.10.2012, 20:31. Показов 25567. Ответов 16
Метки нет (Все метки)
На плоскости даны две окружности. Требуется проверить, пересекаются ли они.
Входные данные Входной файл INPUT.TXT состоит из двух строк. На каждой строке записана информация об одной окружности – координаты ее центра x и y (целые числа, по модулю не превосходящие 5000) и радиус (целое число 1 ≤ r ≤ 1000). Выходные данные В выходной файл OUTPUT.TXT выведите «YES», если окружности пересекаются, и «NO» в противном случае.
PS Алгоритм на изображение... Просто проверяется условие существование треугольника!
0
|
01.10.2012, 20:31 | |
Ответы с готовыми решениями:
16
Пересечение двух окружностей Задача на пересечение двух окружностей Пересечение двух прямых и проверка на пересечение Столкновение двух окружностей |
4 / 4 / 0
Регистрация: 04.12.2010
Сообщений: 93
|
||||||
01.10.2012, 20:41 [ТС] | 3 | |||||
0
|
Thinker
|
01.10.2012, 20:43
#4
|
Не по теме: ну да, не заметил
0
|
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
|
|
01.10.2012, 20:51 | 5 |
Может дело в погрешности из-за извлечения корня и прямого сравнения даблов?
Уберите корень и сравнивайте квадраты
0
|
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
|
|
01.10.2012, 20:53 | 6 |
чот я не понял в чом проблема? программа ведь работает?
0
|
4 / 4 / 0
Регистрация: 04.12.2010
Сообщений: 93
|
|
01.10.2012, 20:55 [ТС] | 7 |
0
|
01.10.2012, 20:55 | 8 |
может и правда в погрешности, так как имеются граничные случаи (вырожденного в отрезок треугольника), когда окружности касаются (одна внутри другой и одна вне другой). там для радиусов должно выполнено r = r1+r2 либо r1 = r + r2 в зависимости от того, как они касаются. при погрешностях условие алгоритма в этих случаях может нарушится
0
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
01.10.2012, 20:55 | 9 |
Bogdand, возможно дело в погрешности. Не вычисляйте корень, сравнивайте с r * r.
Не по теме: Опоздал ><
0
|
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
|
|
01.10.2012, 20:56 | 10 |
0
|
4 / 4 / 0
Регистрация: 04.12.2010
Сообщений: 93
|
|
01.10.2012, 20:59 [ТС] | 11 |
0
|
Nixy
|
01.10.2012, 21:01
#12
|
Не по теме: написал не подумав
0
|
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
|
||||||
01.10.2012, 21:08 | 14 | |||||
где r=(x1-x2)^2+(y1-y2)^2
0
|
1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,746
|
|
01.10.2012, 21:14 | 15 |
Невнятно сформулирована задача. Проверить окружности изолированы просто
#define SQR(a) ((a) * (a)) // или template bool outside = SQR(r1 + r2) > SQR(x2 - x1) + SQR(y2 - y1); Конечно вызовы pow и sqrt = западло. Но вот что нужно еще (что считается "настоящим" пересечением) - не пойму ;-)
0
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
||||||
01.10.2012, 21:23 | 16 | |||||
даже странно. когда-то решал так:
1
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
||||||
01.10.2012, 21:30 | 17 | |||||
Зашел только что на acmp.ru, эта задача у меня пройдена вот так:
1
|
01.10.2012, 21:30 | |
01.10.2012, 21:30 | |
Помогаю со студенческими работами здесь
17
Координаты пересечения двух окружностей Строка: Добавить в строковый класс функцию, которая создает строку, содержащую пересечение двух строк, то есть общие символы для двух строк. Вводится значение двух радиусов окружностей Вычислить площадь пересечения двух окружностей Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |