|
Модераторы: Sardar, Aliance |
|
iddqd |
|
||||||
Опытный Профиль Группа: Участник Сообщений: 491 Регистрация: 16.11.2005 Репутация: нет Всего: 2 |
Суть моей задачи в следующем: я рисую на канвасе круги. Их 20. И очень часто при рандоме круги накладываются друг на друга. Я хочу избежать этого и ввести проверку, не пересекает ли это какой-нибудь другой круг.
Вот что я делаю:
Сами круги создаются рандомно в цикле.
Функция для проверки координат выглядит так:
Проблема в том, что при таком подходе даже для 20 кругов браузер висит. Цикл не бесконечный, но очень долгий. Пожалуйста, подскажите наиболее оптимальное решение проблемы. -------------------- |
||||||
|
|||||||
magelan |
|
|||
потерял xPath Профиль Группа: Участник Сообщений: 393 Регистрация: 5.4.2010 Репутация: 2 Всего: 16 |
Вам не циклы оптимизировать надо, а правильные алгоритмы использовать. Не помню описан ли у Кнута алгоритм пересечения фигур. Лет 15 назад я встречал такие примеры в одной из книжек по компьютерной графике, вероятно какой-нибудь из алгоритмов Брезенхама.
Для графических построений лучше использовать сервер, который выдаст готовую картинку, а не парить такими вещами браузер, либо флеш. Большинство современных нетбуков - закиснут на такой задаче. |
|||
|
||||
iddqd |
|
|||
Опытный Профиль Группа: Участник Сообщений: 491 Регистрация: 16.11.2005 Репутация: нет Всего: 2 |
Использовать готовую картинку не получится. Эти кружки еще и интерактивными будут. Кликаться, двигаться и прочие клевые штуки.
Есть еще идеи? -------------------- |
|||
|
||||
ksnk |
|
||||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
Круги рисуются на прямой? Если все-таки на плоскости, то расстояние на плоскости меряется немного по другому.
если нужен прямоугольный базис, то нужно бы так
Если не хватит такого увеличения пространства выбора - нужно копать правильные алгоритмы... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
||||
|
|||||
iddqd |
|
|||
Опытный Профиль Группа: Участник Сообщений: 491 Регистрация: 16.11.2005 Репутация: нет Всего: 2 |
ksnk, спасибо огромное за ответ. Это и есть решение проблемы.
-------------------- |
|||
|
||||
magelan |
|
|||
потерял xPath Профиль Группа: Участник Сообщений: 393 Регистрация: 5.4.2010 Репутация: 2 Всего: 16 |
Бильярд? Вы задачку то опишите, может мы какую другую "обманку" придумаем, чем циклы крутить. |
|||
|
||||
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |