![]() |
Кто-нибудь реализовывал SAT самостоятельно?
Собственно, сабж. Всегда использовал чужие классы, и особо не вникал в принципы расчетов столкновений. Но вот решил сам понять, как все работает, и пришел в полнейший тупик.
Пересмотрел кучу ресурсов по этому вопросу, но внятного кода нигде нет. Теория ясна, но по коду есть куча вопросов. |
Теорема о разделяющей оси?
Тутор... |
Я знаю много алгоритмов проверки столкновений и реакции на столкновения. Можно использовать простой встроенный хиттест, а можно, используя физику и матан, рассчитать независимую от кадров проверку. Кому интересно - пишите в личку
|
Мне хиттест не интересен. Нужен именно SAT. А конкретнее, интересует то, как высчитать ось, на которую будут проецироваться точки
Цитата:
Там все то же, что и везде. Я не могу понять вот этого Цитата:
но еще больше интересует, как это можно отрисовать для тестов? |
Вектор - это направление. В теореме ключевую роль играет проекция на вектор. Не важно из какой точки проведен вектор, проекция на него всегда будет одинаковая (в данном случае, рассматривается только направление).
Перпендикуляр, также - только направление, вы можете провести его из любой точки. В теореме, используется ближайшая точка к линии, к которой строится перпендикуляр. Вы же смотрели тутор. Там есть интерактивные примеры, почти на всех картинках можно что-то таскать. |
Цитата:
Но вот это: Цитата:
как-то же там поворачиваются линии при перетаскивании фигур, рисуются проекции и т.д. |
goodguy
Цитата:
|
ну вот например: http://www.sevenson.com.au/actionscript/sat/
или вот: http://rocketmandevelopment.com/2010/11/22/using-sat/ Хотя я и другие находил. Их полно, гугл в помощь |
Я вот ещё не пойму - нахрена их проецировать?
Вот есть у нас прямая - разделяющая ось A*x + B*y + C = 0; Для всех точек подставляем в формулу A*x + B*y + C их x и y. Те, у которых получившееся выражение больше 0 - по одну сторону, у которых меньше - по другую. |
Цитата:
Если бы все было так просто, нахрена бы вообще изобретали эту теорему |
| Часовой пояс GMT +4, время: 09:40. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.