Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.08.2010, 14:43   #1
JohnTravolta
 
Регистрация: 02.08.2010
Сообщений: 3
По умолчанию Проблема с колизией полигонов

Добрый день всем.
Итак начну со своей проблемы.
После прочтения статьи про создание физики 2д http://gd.isadateam.com/physics_delphi.php
я занялся портированием этого дела на пхп. да-да вот такое извращение. Но где-то явно допустил ошибку, хотя код пересматриваю 2е сутки.

Обьясните для начала принцип нахождения точки одного полигона в другом. Автор оперирует понятиями скаляров. Мол, если скаляры всех точек полигона по отношению к этой точке имеют один знак, то точка попала в полигон.
В свою же очередь в функцию проверки передаётся массив точек одного полигона и "нормали" и "скаляр ребра и нормали" другого полигона

function Poly_EdgeDist(poly : PPoly; n : TVector2; d : Single) : single;
var
_m : Single;
i: Integer;
begin
_m := V2Dot(n, poly.v[0]);
for i := 1 to poly.m_v - 1 do _m := min(_m, V2Dot(n, poly.v[i]));
Result := _m - d;
end;
скажите как связаны эти d и точки полигона? разве в d указаны какие координаты для проверки на пересечение? как это работает? самое обидное что оно действительно работает у автора.
JohnTravolta вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37