![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Banned
Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Собственно, сабж. Всегда использовал чужие классы, и особо не вникал в принципы расчетов столкновений. Но вот решил сам понять, как все работает, и пришел в полнейший тупик.
Пересмотрел кучу ресурсов по этому вопросу, но внятного кода нигде нет. Теория ясна, но по коду есть куча вопросов. |
|
|||||
|
Я знаю много алгоритмов проверки столкновений и реакции на столкновения. Можно использовать простой встроенный хиттест, а можно, используя физику и матан, рассчитать независимую от кадров проверку. Кому интересно - пишите в личку
__________________
Не бойся, если ты один. Бойся, если ты ноль |
|
|||||
|
Banned
Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Мне хиттест не интересен. Нужен именно SAT. А конкретнее, интересует то, как высчитать ось, на которую будут проецироваться точки
Цитата:
Там все то же, что и везде. Я не могу понять вот этого Цитата:
но еще больше интересует, как это можно отрисовать для тестов? Последний раз редактировалось goodguy; 20.06.2011 в 18:52. |
|
|||||
|
Вектор - это направление. В теореме ключевую роль играет проекция на вектор. Не важно из какой точки проведен вектор, проекция на него всегда будет одинаковая (в данном случае, рассматривается только направление).
Перпендикуляр, также - только направление, вы можете провести его из любой точки. В теореме, используется ближайшая точка к линии, к которой строится перпендикуляр. Вы же смотрели тутор. Там есть интерактивные примеры, почти на всех картинках можно что-то таскать.
__________________
RTFM |
|
|||||
|
Banned
Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Цитата:
Но вот это: Цитата:
как-то же там поворачиваются линии при перетаскивании фигур, рисуются проекции и т.д. |
|
|||||
|
Цитата:
//вектор var vector:Point = new Point(70, 50); //точка от которой надо отрисовать вектор var startPoint:Point = new Point(50, 50); //сдвигаем вектор var endPoint:Point = vector.add(startPoint); //рисуем var g:Graphics = graphics; g.lineStyle(1); g.moveTo(startPoint.x, startPoint.y); g.lineTo(endPoint.x, endPoint.y);
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
|
Регистрация: Nov 2009
Сообщений: 300
|
goodguy
Цитата:
|
|
|||||
|
Banned
Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
ну вот например: http://www.sevenson.com.au/actionscript/sat/
или вот: http://rocketmandevelopment.com/2010/11/22/using-sat/ Хотя я и другие находил. Их полно, гугл в помощь |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Я вот ещё не пойму - нахрена их проецировать?
Вот есть у нас прямая - разделяющая ось A*x + B*y + C = 0; Для всех точек подставляем в формулу A*x + B*y + C их x и y. Те, у которых получившееся выражение больше 0 - по одну сторону, у которых меньше - по другую.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:50. |
|
|
« Предыдущая тема | Следующая тема » |
|
|