|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.05.2012, 00:03 | #1 |
Пользователь
Регистрация: 06.01.2011
Сообщений: 23
|
Построение непересекающихся окружностей
Возник вопрос, как в Image случайным образом построить и расположить несколько непересекающихся окружностей случайного размера (не выходящего за пределы Image)
|
21.05.2012, 00:49 | #2 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,551
|
1. Заводим массив из записей (координаты центра и радиус).
2. Случайно выбираем координаты центра и радиус так, чтобы окружность не выходила за пределы Image. 3. Проверяем, не пересекается ли новая окружность с уже имеющимися в массиве. Если пересекается, то переходим на шаг 2. 4. Записываем данные новой окружности в массив и отображаем ее визуально. 5. Если нужна еще одна окружность, то переходим на шаг 2. E-Mail: arigato.freelance@gmail.com
|
21.05.2012, 09:38 | #3 |
Форумчанин
Регистрация: 29.05.2011
Сообщений: 449
|
Что то не выходит
Код:
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype |
21.05.2012, 11:43 | #4 | |
Форумчанин
Регистрация: 29.05.2011
Сообщений: 449
|
Цитата:
а как это сделать?
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype |
|
21.05.2012, 13:04 | #5 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
21.05.2012, 13:49 | #6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
|
21.05.2012, 13:50 | #7 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,551
|
Расстояние между центрами 2-х окружностей меньше суммы радиусов => пересекаются. Таким образом надо проверять пересечение со всеми уже построенными окружностями.
E-Mail: arigato.freelance@gmail.com
|
21.05.2012, 13:53 | #8 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> Расстояние между радиусами 2-х окружностей меньше суммы радиусов => пересекаются
а если они вложены одна в другую?
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
21.05.2012, 14:07 | #9 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
Вот геометрия восьмого класса
Код:
Теперь, если хочешь сместить по x, то увеличивай х и проверяй на условие. Так в конце концов, либо ты найдешь место для круга, либо дойдя до конца массива, центр окружности будет пересекаться с границами формы или вообще уйдет за пределы видимости. Но лучше увеличивай не только х, но и у. Или если х=form.width , то х=х2 , а у=у2+N, и по новой увеличивать х.
Если помог, проси поставить минус. Будь оригинален!
|
21.05.2012, 14:13 | #10 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,551
|
Тогда еще проверить, чтобы расстояние между центрами было больше |R1 - R2|.
Код (только рисуем прямо на форму): Код:
E-Mail: arigato.freelance@gmail.com
Последний раз редактировалось Arigato; 21.05.2012 в 14:35. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
упорядоченное построение окружностей(Delphi) | FrankyKaup | Помощь студентам | 3 | 17.08.2010 13:41 |
построение окружностей в Delphi | Kurai | Помощь студентам | 8 | 08.04.2010 22:00 |
Рисование окружностей | SVadiks | Помощь студентам | 1 | 01.12.2009 22:55 |
C++, площадь окружностей | kolesoo | Помощь студентам | 0 | 05.11.2009 22:30 |
Добавление окружностей | ivp88 | Помощь студентам | 3 | 14.02.2007 16:31 |