![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 15.03.2010
Сообщений: 9
|
![]()
Даны центры равномерно растущих кругов на плоскости. При столкновении друг с другом столкнувшиеся круги прекращают свой рост. Найти радиусы кругов, когда процесс роста остановится полностью.
подайте, пожалуйста, идеи... |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 31.05.2009
Сообщений: 786
|
![]()
я бы загнал информацию о каждом круге в массив структур. В структуре сохраняются координаты центра и два радиуса. Один на текущем шаге, второй на предыдущем.
На каждом шаге увеличивал бы радиус только того круга, который не пересекается с другими. А как только круги перестанут расти (во всех структурах радиус на предыдущем шаге равен радиусу на текущем шаге), то можно вернуть и результат. Две окружности не пересекаются если sqrt((x1-x2)^2+(y1-y2)^2)> r1+r2 По русски: расстояние между центрами больше суммы их радиусов . |
![]() |
![]() |
![]() |
#3 |
Регистрация: 15.03.2010
Сообщений: 9
|
![]()
спасибо... постараюсь разобраться...
|
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
Только я бы ещё добавил в каждую структуру признак - растёт данный круг или уже остановился. Тогда проверка, что все остановились становится вообще тривиальной! |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нумерация кругов | Lifefine | Общие вопросы Delphi | 13 | 05.02.2011 22:36 |
Привязка окон друг к другу при перетаскивании | Alexxx5800 | Общие вопросы .NET | 2 | 10.10.2010 20:19 |
Круги в паскале | Timon779 | Помощь студентам | 1 | 10.06.2010 14:21 |
Pascal. Площадь пересечения кругов | TOSAgrk | Помощь студентам | 1 | 05.02.2009 04:23 |
Круги Эйлера | NecRomant | Общие вопросы Delphi | 2 | 17.12.2008 15:07 |