2D kolizja równoległobok rażenia

0

Chciałbym sprawdzić czy czarna linia znajduje się w polu rażenia czerwonej. Pole rażenia czerwonej definiuje przez p1 i p2 oraz p3 jako kierunek oraz długość. Zdaje sobie sprawę ze jest to parallelogram ale czy to mi ułatwia sprawę? W sumie jest to prostokąt do tego nie axis-aligned przez co musialbym użyć Separating Axis Theorem albo innego poważnego;) algorytmu do kolizji i wyjdzie mi z tego cały silnik, a to jedyne miejsce w moim programie gdzie potrzebuję wykryć kolizję do tego zawsze o tym samym typie. Czy jest jakiś sposób na skróty?

0

Istnieje bardzo krótki sposób na sprawdzenie czy dany punkt istnieje w danym dowolnym wielokącie wypukłym :)
Poszukaj w Google, nie ma co się dublować;

Edit: zakładam, że ten wielokąt potrafisz wyznaczyć (matematyka na poziomie liceum wymagana :P)

0

Coś zbyt mało danych dla dwóch linii, napisz jaśniej co chcesz uzyskać, może rysunek w paint machnij.

Dopiero zauważyłem załącznik.
Jeżeli ((Bx-Cx)(Ay-Cy)-(Ax-Cx)(By-Cy)):

  • 0 to C leży po prawej od A-B

  • <0 to C leży po lewej od A-B
  • =0 to C leży dokładnie na A-B
    Więc jeżeli V1 jest po tej samej stronie dla P3-P2 oraz dla P2-P1 oraz dla P1-P3 to V1 jest wewnątrz trójkąta (P1,P2,P3)
    Jeżeli jeden z końców V1-V2 jest wewnątrz trójkąta to masz swój warunek.
    Jednak może być sytuacja kiedy to V1-V2 przecina trójkąt
    Wtedy oba punkty V1 i V2 leżą po prawej P2-P1 oraz po różnych stronach P3-P1 oraz po różnych stronach P3-P2

1 użytkowników online, w tym zalogowanych: 0, gości: 1