Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.11.2010, 12:39
Nicee вне форума Посмотреть профиль Отправить личное сообщение для Nicee Найти все сообщения от Nicee
  № 1  
Ответить с цитированием
Nicee

Регистрация: Oct 2010
Сообщений: 4
По умолчанию Пересечение Спрайта с определенным цветом Битмапдаты

Здравствуйте, уважаемые флешеры

Суть проблемы в следующем.. Есть битмапДата, на которой нарисована какая то клякса (неважно какая, все остальное - прозрачное). Нужно создать круг с рандомными координатами (не находящимися в зоне кляксы) так, чтобы круг касался этой кляксы. Как же вычислить радиус круга?)

Старый 18.11.2010, 12:52
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 2  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Найти ближайший к центру круга непрозрачный пиксел кляксы. Расстояние от центра до пиксела - радиус.
Искать либо долго, либо сложно (и тоже может оказаться не быстро). Выбирайте =)
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 18.11.2010, 12:59
Nicee вне форума Посмотреть профиль Отправить личное сообщение для Nicee Найти все сообщения от Nicee
  № 3  
Ответить с цитированием
Nicee

Регистрация: Oct 2010
Сообщений: 4
Вот вот) Тупое увеличение радиуса круга, пока он не упрется в кляксу (сканируя все пиксели по окружности с каждым новым радиусом), выдали Ахренеть какие медленные результаты. На создание 20 кругов ушло более 1000 мсек.. Неужели нет других алгоритмов применимых к этой задаче?

Старый 18.11.2010, 13:13
Партизан вне форума Посмотреть профиль Отправить личное сообщение для Партизан Найти все сообщения от Партизан
  № 4  
Ответить с цитированием
Партизан
 
Аватар для Партизан

блогер
Регистрация: Nov 2007
Адрес: Almaty, Moscow
Сообщений: 396
Записей в блоге: 5
Отправить сообщение для Партизан с помощью Skype™
Описать попиксельно внешнюю границу кляксы, и уже от нее мерить куда воткнуть круг.

Старый 18.11.2010, 13:20
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 5  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Для начала не увеличивайте радиус, а ищите минимальное расстояние до центра. Расстояние между точками знаете чему равно? Минимум знаете как искать? Вот этот минимум и будет вашим радиусом, без увеличений всяких.
Если надо много кругов, то можно сначала найти только внешние пикселы кляксы и искать расстояние только для них, но боюсь это уже слишком сложно =\
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 18.11.2010, 20:21
Nicee вне форума Посмотреть профиль Отправить личное сообщение для Nicee Найти все сообщения от Nicee
  № 6  
Ответить с цитированием
Nicee

Регистрация: Oct 2010
Сообщений: 4
Цитата:
Расстояние между точками знаете чему равно? Минимум знаете как искать?
Хотелось бы соврать, что знаю, но НЕТ))) Просветите меня пожалуйста

Добавлено через 59 минут
В общем, проблему решил, заменив битмапдату с кляксой (которая представляет собой на самом деле много пересекающихся окружностей) массивом спрайтов-окружностей. Нахожу дистанцию между каждым из них и создаваемой окружностью, выбираю минимальную. Получилось довольно шустро..
Но интересно было бы услышать от профессионалов как бы они решили первоначальную задачу

Старый 19.11.2010, 16:20
Nucer вне форума Посмотреть профиль Отправить личное сообщение для Nucer Посетить домашнюю страницу Nucer Найти все сообщения от Nucer
  № 7  
Ответить с цитированием
Nucer
[++]
 
Аватар для Nucer

Регистрация: Jan 2003
Адрес: Москва
Сообщений: 839
Отправить сообщение для Nucer с помощью ICQ
Партизан дело грит - описать вначале внешнюю границу "кляксы". Это вроде не так уж сложно. Вначале найти один крайний пиксел, от него по 7 проверок на пиксел - ткнуться во все стороны, проверить какой из соседних пикселов тоже крайний. Все найденные крайние пикселы в массив. Дальше уже как тов. жаба написал - найти ближайший к центру круга непрозрачный пиксел кляксы и дело в шляпе))
Nicee, порпобуй ради интереса реализовать, какое быстродействие будет у этого варианта))

Создать новую тему Ответ Часовой пояс GMT +4, время: 18:59.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 18:59.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.