Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Теория - Задача про два круга

Ответить
Настройки темы
Теория - Задача про два круга

Старожил


Сообщения: 222
Благодарности: 1

Профиль | Отправить PM | Цитировать


Как развязять даную задачю:

Условие. Определить, сколько точек пересечения у двух окружностей.

Технические условия. Входные данные: 6 чисел x1, y1, r1, x2, y2, r2,
где x1, y1, x2, y2, - координаты центров окружностей, r1, r2 – их радиусы.
Выходные данные: единственное число, показывающее количество точек пересечения.
0, 1, 2 – соответствующее количество точек пересечения.
-1 – бесконечное количество точек пересечения.

Отправлено: 17:24, 21-02-2008

 

Вредитель


Сообщения: 460
Благодарности: 126

Профиль | Отправить PM | Цитировать


Начнем с простого. Если x1=x2, y1=y2 и r1=r2, значит бесконечное. Дальше можно по теореме Пифагора.

1) Проверяем не находится ли центр одной окружности внутри другой. Для этого сравниваем радиус большей окружности с расстоянием между центрами. Находится - шаг 2, нет - шаг 3.

2) Если разница между большим и меньшим радиусом меньше расстояния между центрами значит 2 точки, если ранвна - 1 точка, больше - 0 точек.

3) Если r1+r2 меньше расстояния между центрами, значит 0 точек, если равно - 1, если больше - 2.

-------
Все сказаное является только моим личным мнением.

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:49, 21-02-2008 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


пункты 1 и 2 не обязательно. По теореме треугольника: сумма длин 2х сторон меньше или равна длине третьей. Равна - прямая, меньше - треугольник, больше - не пересекаются.
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:47, 21-02-2008 | #3


Ветеран


Сообщения: 1404
Благодарности: 135

Профиль | Отправить PM | Цитировать


Цитата:
3) Если r1+r2 меньше расстояния между центрами, значит 0 точек, если равно - 1, если больше - 2.
Наоборот.
Если больше, то 0
Если меньше, то 2 точки

-------
Ehhh.. what's up, doc?..


Отправлено: 11:29, 28-02-2008 | #4


Старожил


Сообщения: 369
Благодарности: 49

Профиль | Отправить PM | Цитировать


Если придать этой задаче скажем, более конкретный вид - а именно:
x1y1 - координаты первой вышки сотовой связи r1 -удаление от неё до звонящего телефона,
x2y2 - координаты второй вышки сотовой связи и r2 - удаление от неё до звонящего телефона.
Так же, зная расстояние между вышками, - В РЕЗУЛЬТАТЕ можно вычислить направление от любой из этих вышек до звонящего по телефону
Так задачка гораздо интереснее

Отправлено: 01:16, 29-02-2008 | #5


Новый участник


Сообщения: 10
Благодарности: 2

Профиль | Отправить PM | Цитировать


Здравствуйте.

Для решения задачи введите функцию R = (x2-x1)^2+(y2-y1)^2-(r1+r2)^2

Если x1=x2, y1= y2, r1=r2 ответ = -1.
Если R > 0 ответ = 0.
Если R = 0 ответ = 1.
Если R < 0 ответ = 2.

Удачи.

Отправлено: 13:14, 02-03-2008 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Теория - Задача про два круга

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Задача про путь и скорость по физике Student00 Хочу все знать 4 21-09-2009 16:12
задача С++ про массивы lrad Программирование и базы данных 3 24-01-2007 23:35
еще раз про два монитора hellrised Хочу все знать 5 08-12-2006 11:09
Два пути ввода пользователей в домен, два разных результата xstranger Microsoft Windows NT/2000/2003 14 31-05-2006 18:30




 
Переход