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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.02.2010, 15:41
greegreeman вне форума Посмотреть профиль Отправить личное сообщение для greegreeman Найти все сообщения от greegreeman
  № 21  
Ответить с цитированием
greegreeman
 
Аватар для greegreeman

Регистрация: Jan 2010
Сообщений: 147
было бы неплохо. если там уже все расчеты есть. тут представили несколько вариантов. попробую сделать и так и так. посмотрю, что больше подходит

Старый 16.02.2010, 15:54
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 22  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445

Psycho Tiger, читай внимательней))) Мой ответ был как раз на "шаг в пиксель". Предлагал же я вот что. За четыре "шага" мы сокращаем область поиска в 16 раз.
1. Известно, что линия пересекает фигуру, но ее половина - нет. Остается вторая половина для поиска.
2. Новая линия пересекла фигуру - есть точка без пересечения (середина всей линии) и точка с пересечением - 75% всей линии
3. Сокращаем область еще в два раза. Пересечение есть.
4. Сокращаем область еще в два раза. Пересечения нет.
Продолжаем в том же духе. 10 "шагов" и у нас останется пять точек для точечной проверки. Не надо идти по каждому пикселю линии!

UPD: к сожалению все это только красивая теория. Флэш не сравнивает реальные шейпы, только шейп и точку или bounds шейпов. В реальности даже уменьшая bounds контрольной линии мы рискуем никогда не найти пересечение, так как... его вообще может не быть, хотя hitTestObject и уверяет что есть.
Битмапдата пожалуй на сегодняшний день единственный вариант.
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 16.02.2010 в 22:25.
Старый 16.02.2010, 19:14
greegreeman вне форума Посмотреть профиль Отправить личное сообщение для greegreeman Найти все сообщения от greegreeman
  № 23  
Ответить с цитированием
greegreeman
 
Аватар для greegreeman

Регистрация: Jan 2010
Сообщений: 147
наверное метод, который предложил Партизан самый точный...

Добавлено через 3 минуты
Wolsh, то что ты предлагаешь классический алгоритм, который проходят в уневере, так что он по-любому рабочий

Старый 16.02.2010, 21:53
krolser вне форума Посмотреть профиль Отправить личное сообщение для krolser Найти все сообщения от krolser
  № 24  
Ответить с цитированием
krolser
 
Аватар для krolser

Регистрация: Oct 2007
Адрес: Гродно
Сообщений: 67
Отправить сообщение для krolser с помощью Skype™
А можно вопрос к топикстартеру.
MovieClip можно представить в виде замкнутого многоуголиника (не обязательно выпоклуго) без самопересечений?

Если да, то есть простой алгоритм... (ну почти простой . Могу расписать.

Старый 17.02.2010, 00:26
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 25  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Wolsh, метод поиска делением на 2 мне знаком, но это всё равно не выход, я считаю)

Старый 17.02.2010, 00:56
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 26  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Обрисовать прямыми мувик и тестить на пересечение как wvxvw нaписал. Пример:
http://www.murmadillo.tut.su/html/li...Intersect.html
__________________
Гоночка

Старый 17.02.2010, 01:07
greegreeman вне форума Посмотреть профиль Отправить личное сообщение для greegreeman Найти все сообщения от greegreeman
  № 27  
Ответить с цитированием
greegreeman
 
Аватар для greegreeman

Регистрация: Jan 2010
Сообщений: 147
krolser, можно. хотел бы увидеть твой практически простой алгоритм. спасибо. то, что предложил wvxvw тоже работает. надо мувик обрисовать прямыми, закинуть их в массив и проверять на пересечение, а потом юзать его формулы, которые выше. точность будет не высокой. но для некоторых задач ее вполне хватит

Старый 17.02.2010, 16:56
krolser вне форума Посмотреть профиль Отправить личное сообщение для krolser Найти все сообщения от krolser
  № 28  
Ответить с цитированием
krolser
 
Аватар для krolser

Регистрация: Oct 2007
Адрес: Гродно
Сообщений: 67
Отправить сообщение для krolser с помощью Skype™
Цитата:
Сообщение от Alex Lexcuk Посмотреть сообщение
Обрисовать прямыми мувик и тестить на пересечение как wvxvw нaписал. Пример:
http://www.murmadillo.tut.su/html/li...Intersect.html
После этого мне уже нечего рассказывать

Старый 17.02.2010, 19:22
greegreeman вне форума Посмотреть профиль Отправить личное сообщение для greegreeman Найти все сообщения от greegreeman
  № 29  
Ответить с цитированием
greegreeman
 
Аватар для greegreeman

Регистрация: Jan 2010
Сообщений: 147
всем спасибо, узнал много нового , надеюсь для кого-то это тоже было полезно

Старый 17.02.2010, 22:33
miramax вне форума Посмотреть профиль Отправить личное сообщение для miramax Посетить домашнюю страницу miramax Найти все сообщения от miramax
  № 30  
Ответить с цитированием
miramax
 
Аватар для miramax

Регистрация: Oct 2005
Адрес: Борисоглебск
Сообщений: 1,702
Отправить сообщение для miramax с помощью ICQ Отправить сообщение для miramax с помощью AIM Отправить сообщение для miramax с помощью MSN Отправить сообщение для miramax с помощью Yahoo Отправить сообщение для miramax с помощью Skype™
Вот уж не думал , что мой, заброшеный на заре моей юности, блог ещё кому-то может помочь http://as3.ru/?p=6 =)
Вроде в статье есть всё необходимое.
__________________
AS3 | www.FLAPS.ru | Русские флэшеры самые умные флэшеры в мире. ©

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

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

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


 


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


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