W projektowanej przeze mnie grze jest podmuch, który wystrzeliwuje z punktu początkowego w kierunku myszy. Szerokość tego podmuchu zawsze będzie taka sama.
Wzdłuż dolnej części ekranu (co jest obecnie) poruszają się kwadraty, które powinny być wykonane przez podmuch kontrolowany przez gracza.
Obecnie próbuję znaleźć sposób, aby dowiedzieć się, czy rogi tych kwadratów znajdują się w obrębie dwóch linii granicznych wybuchu. Pomyślałem, że najlepszym sposobem na to byłoby obrócenie rogów kwadratu wokół punktu początkowego, tak jakby podmuch był całkowicie poziomy i zobaczyć, czy wartości Y narożników były mniejsze lub równe szerokości podmuchu, który oznacza, że leżą w obrębie dotkniętego regionu, ale nie mogę tego wypracować
Odpowiedzi:
Punkt znajduje się między 2 równoległymi liniami, jeśli jest to jedna strona jednej linii i druga strona drugiej linii (zapewniając linie wskazują w tym samym kierunku).
Możesz użyć najwyższej odpowiedzi z tego pytania przy przepełnieniu stosu, aby ustalić, po której stronie linii (zdefiniowanej przez 2 punkty) leży punkt.
Alternatywną metodą byłoby obliczenie odległości od punktu do linii środkowej i porównanie jej z połową grubości wybuchu.
źródło
Tak to robię (z dodatkowym sprawdzeniem, czy podane płaszczyzny są faktycznie równoległe. Obiekty Plane zawierają równanie płaszczyzny w tej formie: Ax + By + Cz + D = 0, które można łatwo wygenerować z 3 podanych punktów lub z punktu i normalnie (zobacz tę stronę, jeśli nie masz pewności co do matematyki: http://paulbourke.net/geometry/pointlineplane/ )
źródło