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

Kolizja ze ścianą, która jest prostą nieskończoną

Ostatnio zmodyfikowano 2015-01-24 03:21
Autor Wiadomość
wiktor12348
Temat założony przez niniejszego użytkownika
Kolizja ze ścianą, która jest prostą nieskończoną
» 2015-01-23 23:47:31
Witam,

Potrzebuję kolizje ze ścianą. U mnie ściana to współrzędne prostej, wyliczam sobie postać ogólną itp oraz odległość prostej od punktu, ale jak wiadomo, proste są "nieskończone". Jak to graniczyć?


Coś takiego mam. Czarne linie to ściany w reprezentacji prostych, ale jak ściana się kończy to prosta "idzie dalej".
Jest pewnie jakieś banalne rozwiązanie, bo to naprawić?
P-125453
Piastlis
» 2015-01-24 01:38:47
Najpierw sprawdzasz czy w następnym ruchu element ruchomy wchodzi w "zakazane pole" np y>y_prostej1 i x>x_prostej2 a potem do której ma bliżej.Ewentualnie róg jak chcesz inaczej go zainplementować.
P-125455
DejaVu
» 2015-01-24 03:21:09
Najprościej będzie jeżeli ściany zrobisz z prostokątów i tym samym będziesz sprawdzał czy prostokąty na siebie nachodzą. Druga prosta opcja: użyć silnika typu Box2D, który załatwia sprawy kolizji za Ciebie w dość przyzwoity sposób. Trzecia opcja: podumać sobie nad algorytmem do stwierdzania czy dwa odcinki się przecinają. Czwarta opcja: podumać nad algorytmem, który będzie zwracał punkt przecięcia dwóch prostych (o ile nie są do siebie równoległe). Piąta opcja: jeżeli ściana jest równoległa lub prostopadła to wystarczy napisać:
C/C++
if( obiekt.x > sciana.x + obiekt.promien && obiekt.x + obiekt.delta.x < sciana.x + obiekt.promien )
     obiekt.x = sciana.x + obiekt.promien;
else
     obiekt.x += obiekt.delta.x;

P-125456
« 1 »
  Strona 1 z 1