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
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