Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.09.2011, 18:57   #1
courant D'AIR
 
Регистрация: 13.09.2011
Сообщений: 3
По умолчанию Пересечение кругов

уважаемые программеры!помогите плиз,оч нужно решить задачку:на плоскости заданы два круга описываемые координатами центра и радиуса.определить пересекаются они или нет?!заранее большое спасибо!!!
courant D'AIR вне форума Ответить с цитированием
Старый 13.09.2011, 19:02   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

и в чем проблема?
определить же просто.
1)узнаем растояние между точками(s)
2)если s<r1+r2 тогда пересекаются
иначе если x==r1+r2 тогда касаются
иначе не пересекаются и не качаются.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.09.2011, 19:14   #3
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Ещё для первого случая надо учесть что одна окружность может содержаться в другой, т.е добавить к условию |r1-r2|<s

Последний раз редактировалось eoln; 13.09.2011 в 19:29. Причина: двусмысленность
eoln вне форума Ответить с цитированием
Старый 17.09.2011, 13:37   #4
courant D'AIR
 
Регистрация: 13.09.2011
Сообщений: 3
По умолчанию

еще раз спасибо за быстрый ответ и помощь!)
courant D'AIR вне форума Ответить с цитированием
Старый 17.09.2011, 18:47   #5
hunter03
Форумчанин
 
Регистрация: 05.05.2009
Сообщений: 244
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var r,r1,x1,x2,y1,y2,m,r2:real;  ab:real;
begin
r1:=strtofloat(maskedit1.Text);
r2:=strtofloat(maskedit2.Text);
x1:=strtofloat(maskedit3.Text);
x2:=strtofloat(maskedit4.Text);
y1:=strtofloat(maskedit5.Text);
y2:=strtofloat(maskedit6.Text);
ab:=sqrt(sqr(x2-x1)+sqr(y2-y1)) ;
 if ab<(r1+r2) then maskedit7.text:='круги пересекаются M:=-1'
 else  if ab=(r1+r2) then maskedit7.text:='круги соприкасаются M:=-1'


 else maskedit7.text:='круги не имеют общих точек M:=0'
 end;

________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 17.09.2011 в 21:20.
hunter03 вне форума Ответить с цитированием
Старый 17.09.2011, 21:22   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

hunter03, незачёт!
Чуть выше было же сказано, что один круг может содержаться внутри другого. При этом пересечений не будет!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.09.2011, 12:26   #7
hunter03
Форумчанин
 
Регистрация: 05.05.2009
Сообщений: 244
По умолчанию

точно, не обратил внимания
hunter03 вне форума Ответить с цитированием
Старый 05.10.2011, 23:43   #8
courant D'AIR
 
Регистрация: 13.09.2011
Сообщений: 3
По умолчанию

а еще такой вопрос,как на эту задачку постоить нейросеть и обучить ее?!
courant D'AIR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рисование кругов инструментом LineTo Anubys Помощь студентам 3 06.03.2011 20:46
Даны центры равномерно растущих кругов на плоскости. При столкновении друг с другом столкнувшиеся круги п napster1991 Помощь студентам 3 07.02.2011 21:54
Даны центры равномерно растущих кругов на плоскости. При столкновении друг с другом столкнувшиеся круги п napster1991 Помощь студентам 3 07.02.2011 20:02
Нумерация кругов Lifefine Общие вопросы Delphi 13 05.02.2011 22:36
Pascal. Площадь пересечения кругов TOSAgrk Помощь студентам 1 05.02.2009 04:23