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

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

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

Регистрация: Feb 2008
Сообщений: 890
По умолчанию Вопрос по областям Вороного.

В этом форуме часто отсылают к следующей статье(точнее к ее переводу):
http://noregret.org/tutor/n/collision/ - где в частности дано следующее определение:
Цитата:
Область Вороного — это множество точек, расположенных ближе к данному, чем к какому-либо другому фрагменту многоугольника. Фрагментом многоугольника называется его вершина или сторона. Область Вороного формирует область пространства, "прилежащую" к ближайшему фрагменту. Набор областей Вороного для всех фрагментов многоугольника называется диаграммой Вороного.
- с ним все понятно, а вот дальше сказано:
Цитата:
Таким образом, если мы знаем, в какой из областей Вороного находится центр окружности, мы сразу знаем, какой из фрагментов многоугольника является ближайшим к окружности и знаем, какую из вершин многоугольника проверять на предмет столкновения.

Красота этого метода в том, что по результатам проверки наложения проекций на осях координат мы можем определить, в какой именно области Вороного находится окружность. Не нужно выполнять никаких дополнительных вычислений! Эта идея была впервые раскрыта Джеймсом Арво.
Вот тут и возникает следующий вопрос:
что это за проверка наложения проекций на осях и как именно мы можем определить нужную область Вороного. И как вообще эти области описывать?

Старый 23.09.2008, 22:32
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 2  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
видимо, имеется ввиду проверка принадлежности центра окружности какой-либо зоне Вороного.

Старый 24.09.2008, 00:47
orcpochta вне форума Посмотреть профиль Отправить личное сообщение для orcpochta Найти все сообщения от orcpochta
  № 3  
Ответить с цитированием
orcpochta

Регистрация: Feb 2008
Сообщений: 890
Цитата:
Сообщение от undefined Посмотреть сообщение
видимо, имеется ввиду проверка принадлежности центра окружности какой-либо зоне Вороного.
Это бесспорно, да, но как осуществляется эта проверка? И как описываются эти зоны, чтобы потом можно было осуществлять проверки?

Старый 24.09.2008, 19:33
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 4  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
Цитата:
но как осуществляется эта проверка?
не проверял, но вроде должно быть верно:
-Выбираем точку из множества
-Ставим затравку, считая, что ячейкой Вороного для данной точки будет вся плоскость.
-Проводим отрезки от точки до всех остальных точек множества
к каждому отрезку проводим серединный перпендикуляр
-Каждый перпендекуляр разбивает плоскость на 2 полуплоскости, надо выбрать ту полуплоскость где НЕ находится наша точка и вычесть полученное множество из текущей ячейки, т.о. на каждом шаге ячейка по площади будет становится все меньше и после обработки последнего отрезка получим готовую ячейку Вороного для данной точки.
Далее повторяем вышенаписаное для всех точек множества.

Цитата:
И как описываются эти зоны, чтобы потом можно было осуществлять проверки?
ячейка Вороного описывается набором конечных и полубесконечных отрезков, определить принадлежность точки такой ячейке вопрос чисто технический.

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

Регистрация: Feb 2008
Сообщений: 890
мне кажется это будет гораздо более трудоемко, чем определить расстояние от центра круга до всех вершин и сторон n-угольника и выбрать из них минимальное, чтобы исходя из этого проверять столкновение

Старый 12.10.2008, 18:04
mikleb вне форума Посмотреть профиль Отправить личное сообщение для mikleb Найти все сообщения от mikleb
  № 6  
Ответить с цитированием
mikleb

Регистрация: Feb 2008
Сообщений: 111
Вообще то определить принадлежность точки области вороного вершины или ребра, очень просто, нужно просто посчитать пару скалярных произведений

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

Регистрация: Jul 2009
Сообщений: 25
Цитата:
Сообщение от mikleb Посмотреть сообщение
Вообще то определить принадлежность точки области вороного вершины или ребра, очень просто, нужно просто посчитать пару скалярных произведений
А можно по подробней ?

Старый 11.09.2010, 17:42
Tertium Organum вне форума Посмотреть профиль Отправить личное сообщение для Tertium Organum Посетить домашнюю страницу Tertium Organum Найти все сообщения от Tertium Organum
  № 8  
Ответить с цитированием
Tertium Organum

Регистрация: Mar 2002
Адрес: Voronezh
Сообщений: 3
блин ну что за загадочность!! все только и твердят, ячейки вороного - да раз плюнуть!
Ктонть знает куда именно плюнуть то? Найденные мной исходники (сам бы написал но не знаю в чем суть метода) - это далеко не пара скалярных произведений!

кстати сравнивать не обязательно расстояния до углов, достаточно их квадраты и тогда не надо вычислять тяжелые корни

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

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

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


 


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


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