Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Kolizja trójkąta z prostokątem

Ostatnio zmodyfikowano 2010-12-02 21:36
Autor Wiadomość
ison
Temat założony przez niniejszego użytkownika
Kolizja trójkąta z prostokątem
» 2010-12-01 19:51:20
Witam,
mógłby ktoś nakierować mnie na prosty algorytm wykrywający kolizję trójkąta z prostokątem (bądź wykrywający czy linie się przecinają)? A jeszcze lepiej byłoby gdyby ktoś podzielił się gotowcem :D
dzięki, pozdrawiam
P-24746
pekfos
» 2010-12-01 19:56:05
wiem że można obliczyć współrzędne wszystkich punktów odcinka algorytmem Bresenhama(masz kod na wikipedii) w wtedy znajdujesz wspólny punkt odcinków jeśli taki jest. jak jest to jest kolizja:)
P-24747
ison
Temat założony przez niniejszego użytkownika
» 2010-12-02 19:19:26
serio nikt nie ma żadnych prostszych metod na wykrywanie tej kolizji?
P-24777
DejaVu
» 2010-12-02 19:28:33
Popatrzeć na to i stwierdzić: 'o! Przecina się :)'. Musisz użyć matematyki do rozwiązania Twojego problemu.
P-24779
dmx81
» 2010-12-02 21:36:34
sposobow jest wiele, sam nad tym siedze juz iles tam dni ( i kartek zapisanych)
np sprawdzanie wyznacznika - K - kwadrat, T- trojkat
jesli K1,K2,T1 ma inny znak niz K1,K2,T2 i T1,T2,K1 ma inny znak niz T1,T2,K1 - to proste sie przecinaja :)

i tak robisz dla kazdej prostej trojkata, czy przecina sie z jakakolwiek prosta kwadratu

ps1. wyznaczniki dla dwoch roznych punktow maja rozne znaki wyznacznikow, jesli punkty te leza po przeciwnych stronach prostej\odcinka

mozna na wektorach, przez obliczanie dlugosci wektorow i ich rzutowanie - nad tym naprawde trzeba troszke posiedziec i rozrysowac :)

ogolnie nie ma co patrzyc chyba ze kwadrat - trojkat, ale prosta-prosta, ewentualnie sprawdzac, czy wierzcholek jednej figury nie nalezy czasem do drugiej figury - a to robisz tak, ze :

bierzez najbardziej wysuniety wierzcholek figury1 na osi x (np xmax = 200)

dla kazdego wierzcholka figury2 rysujesz prosta L (x1,y1,x2,y2) (y1,y2 = y wierzcholka, x1  - wiadomo, takie jak x kolejnego wierzcholka,  natomiast x2 - zawsze wieksze od xmax, np 201)

teraz szukasz przeciec wg wyznacznikow, jesli prosta ma jedno przeciecie - znaczy sie, ze pkt jest w srodku = kolizja, jesli ma 2 przeciecia (ew wiecej dla figury wkleslej) lub 0 przeciec - brak kolizji - dla danego wierzcholka oczywiscie


mam nadzieje, ze nic nie pomieszalem, w ostatecznosci wrzuce jakis kodzik, ale lepiej samemu rozpracowac na kartce

ps2. sam siedze nad kolizjami (chociaz teraz mialem przeprowadzke i od tyg nic nie robilem) i dla "szybko" poruszajacych sie figur troche wiecej kombinowania, ale juz jest niezle ;) bo pomysl co zrobic, jak przed ruchem obiekty nie koliduja, po ruchu (czytaj klatce) nie koliduja - a jak narysujesz slad ich ruchu - to sie przecina (od razu dalem odpowiedz, jak szukac takich kolizji - wymyslilem, tzn wpadlem na cos, co pewnie i tak juz znane, zeby wlasnie sprawdzac taki slad ruchu - czy sie przecina z innym sladem )

jak cos niedokladnie napisalem, to pytaj, a jesli cos zle, to mnie poprawcie :)
P-24787
« 1 »
  Strona 1 z 1