Autor Wątek: kolizje obracanych trojkatow  (Przeczytany 974 razy)

Offline Santor

  • Użytkownik

# Grudzień 04, 2012, 13:51:55
dziendobry :)
mam prostokatne sprite'y ktore sa poobracane o rozne katy. Chce zrobic do tego kolizje. Zauwazylem ze moim sposobem jest strasznie duzo liczenia. Jako argumenty biore polozenie wymiary i katy o jakie sa obrocone  prostokaty. Najpierw obliczam polozenie wszystkich wierzcholkow a potem chce dlakazdego prostokata napisac rownania funkcji bokow i sprawdzac  czy sie przecinaja z liniami drugiego prostokata a potem sprawdzic w jakich punktach (czy naleza do prostokata). Da sie moze jakos latwiej? Szukalem ale nic nie znalazlem w google. Zaznaczam ze nie chce gotowch bibliotek od fizyki tylko napisac to sam nueco prosciej.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline zephyr

  • Użytkownik

# Grudzień 04, 2012, 18:39:30
Można zacząć od testu AABB otaczającego prostokąta. Taki test jest szybki, jak wykaże że prostokąty są wystarczająco blisko można zrobić bardziej szczegółowy test, np tak jak robisz, albo jakoś inaczej.

Losowy link z google sugeruje SAT:
http://www.gamedev.net/page/resources/_/technical/game-programming/2d-rotated-rectangle-collision-r2604
czyli w skrócie zrzutować prostokąty na osie równoległe do ich boków i sprawdzić każdą oś, jeśli na którejś nie ma to znaczy że nie kolidują, jeśli wszystkie kolidują to dla tego kształtu oznacza że jest kolizja.

Rzut na te osie powinno się dać wyliczyć a potem podstawiać do wzoru.

[edit]
pomyliłem trójkąty z prostokątami, ale obie metody dalej działają tylko wzorki będą inne