Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Кто-нибудь реализовывал SAT самостоятельно? (http://www.flasher.ru/forum/showthread.php?t=158425)

goodguy 19.06.2011 21:43

Кто-нибудь реализовывал SAT самостоятельно?
 
Собственно, сабж. Всегда использовал чужие классы, и особо не вникал в принципы расчетов столкновений. Но вот решил сам понять, как все работает, и пришел в полнейший тупик.
Пересмотрел кучу ресурсов по этому вопросу, но внятного кода нигде нет. Теория ясна, но по коду есть куча вопросов.

S-ed 20.06.2011 00:05

Теорема о разделяющей оси?
Тутор...

Jarproger 20.06.2011 00:22

Я знаю много алгоритмов проверки столкновений и реакции на столкновения. Можно использовать простой встроенный хиттест, а можно, используя физику и матан, рассчитать независимую от кадров проверку. Кому интересно - пишите в личку

goodguy 20.06.2011 15:47

Мне хиттест не интересен. Нужен именно SAT. А конкретнее, интересует то, как высчитать ось, на которую будут проецироваться точки
Цитата:

Теорема о разделяющей оси?
Тутор...
Ну, наверное это я и сам находил ;)
Там все то же, что и везде.

Я не могу понять вот этого
Цитата:

In 2D, each of these potential separating axes is perpendicular to one of the faces (edges) of each shape.
Что считается гранью фигуры? Вектор ведь обозначается только двумя координатами х и у
но еще больше интересует, как это можно отрисовать для тестов?

S-ed 21.06.2011 01:48

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

Вы же смотрели тутор. Там есть интерактивные примеры, почти на всех картинках можно что-то таскать.

goodguy 21.06.2011 09:12

Цитата:

В теореме ключевую роль играет проекция на вектор. Не важно из какой точки проведен вектор, проекция на него всегда будет одинаковая (в данном случае, рассматривается только направление).
С этим более менее разобрался
Но вот это:
Цитата:

Вы же смотрели тутор. Там есть интерактивные примеры, почти на всех картинках можно что-то таскать.
Я же говорю, что хочу сам разобраться со всем. Что мне эти примеры? Там нет исходников. Меня интересует как отрисовать все это так, чтобы векторы не рисовались из х:0 у:0
как-то же там поворачиваются линии при перетаскивании фигур, рисуются проекции и т.д.

saikspaik 21.06.2011 12:45

goodguy
Цитата:

Всегда использовал чужие классы
А что за классы, ссылку/ссылки можно? Если не секрет конечно.

goodguy 21.06.2011 14:08

ну вот например: http://www.sevenson.com.au/actionscript/sat/
или вот: http://rocketmandevelopment.com/2010/11/22/using-sat/

Хотя я и другие находил. Их полно, гугл в помощь

-De- 21.06.2011 14:54

Я вот ещё не пойму - нахрена их проецировать?
Вот есть у нас прямая - разделяющая ось
A*x + B*y + C = 0;
Для всех точек подставляем в формулу
A*x + B*y + C
их x и y. Те, у которых получившееся выражение больше 0 - по одну сторону, у которых меньше - по другую.

goodguy 21.06.2011 15:18

Цитата:

их x и y. Те, у которых получившееся выражение больше 0 - по одну сторону, у которых меньше - по другую.
И что мне это даст? Зачем мне вообще прямая разделяющая ось?
Если бы все было так просто, нахрена бы вообще изобретали эту теорему


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

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