|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.08.2010, 14:43 | #1 |
Регистрация: 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 указаны какие координаты для проверки на пересечение? как это работает? самое обидное что оно действительно работает у автора. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с рамами/Проблема с ЖД | DRAGGER | Компьютерное железо | 6 | 04.01.2009 23:37 |