Potrzebuję jakiś szybki i prosty sposób na sprawdzenie, czy punkt \(\displaystyle{ (x,y,z)}\) należy do prostokąta zadanego wierzchołkami \(\displaystyle{ (x,y,z)}\). Potrzebuję to do programu, który piszę. Mój pierwszy pomysł był taki, żeby porównywać, czy wartości \(\displaystyle{ x,y}\) punktu są mniejsze/większe od współrzędnych wierzchołków, ale to nie będzie chyba uniwersalne da dowolnie obróconego wielokąta. Nie wiem czy też sprawdzanie wszystkich współrzędnych przy dowolnym obrocie da dobre wyniki. Jest na to jakiś sposób?
Układ współrzędnych: \(\displaystyle{ x,y}\) normalnie, oś z zwrócona do obserwatora.
Czy punkt leży wewnątrz czworokąta w przestrzeni 3D?
Czy punkt leży wewnątrz czworokąta w przestrzeni 3D?
Ostatnio zmieniony 3 lip 2014, o 16:47 przez leszczu450, łącznie zmieniany 1 raz.
Powód: Całe wyrażenia matematyczne umieszczaj w tagach[latex] [/latex] .
Powód: Całe wyrażenia matematyczne umieszczaj w tagach
- mdd
- Użytkownik
- Posty: 1897
- Rejestracja: 14 kwie 2013, o 10:58
- Płeć: Mężczyzna
- Lokalizacja: Warszawa
- Podziękował: 2 razy
- Pomógł: 512 razy
Czy punkt leży wewnątrz czworokąta w przestrzeni 3D?
Oznaczmy przez \(\displaystyle{ P}\) - punkt, którego położenie względem prostokąta w trójwymiarowej przestrzeni badamy.Vill pisze:czy punkt \(\displaystyle{ (x,y,z)}\) należy do prostokąta zadanego wierzchołkami \(\displaystyle{ (x,y,z)}\).
1) W pierwszej kolejności trzeba sprawdzić czy dany punkt \(\displaystyle{ P}\) należy do płaszczyzny wyznaczonej przez prostokąt.
2) Trzeba zidentyfikować przeciwległe boki prostokąta i obliczyć ich długości.
3) Trzeba obliczyć odległość punktu \(\displaystyle{ P}\) od prostych wyznaczonych przez boki prostokąta.
Punkt \(\displaystyle{ P}\) należy do prostokąta jeśli suma odległości punktu \(\displaystyle{ P}\) od prostych wyznaczonych przez przeciwległe boki prostokąta jest równa odległości między tymi dwiema prostymi (a ta odległość oczywiście jest równa długości odpowiedniego boku prostokąta).
Chyba nie można takiego algorytmu uznać za szybki. Chętnie poznam szybszą procedurę.
Czy punkt leży wewnątrz czworokąta w przestrzeni 3D?
Takie proste, że aż mi głupio, że na to nie wpadłam, dzięki!
Znalazłam tutaj w innym temacie fajny wzór na odległość punktu od prostej w 3D tylko nie wiem na ile on jest poprawny, nigdzie indziej takiego wzoru nie widziałam. I moje pytanie, czy on jest poprawny? A jeżeli nie, czy istnieje inny poprawny bazujący na wektorach i iloczynach skalarnych/wektorowych?
EDIT: Wzór jest poprawny.
Znalazłam tutaj w innym temacie fajny wzór na odległość punktu od prostej w 3D tylko nie wiem na ile on jest poprawny, nigdzie indziej takiego wzoru nie widziałam. I moje pytanie, czy on jest poprawny? A jeżeli nie, czy istnieje inny poprawny bazujący na wektorach i iloczynach skalarnych/wektorowych?
Idealnie by się nadawał, bo wszystkie dane i struktury do policzenia tego mam i zmieściłabym się z tym w jednej linijce kodu.znajdź dwa punkty prostej \(\displaystyle{ P}\) i \(\displaystyle{ Q}\).
Wyznacz wektor \(\displaystyle{ PQ}\) równoległy do prostej. Niech nasz punkt nazywa się \(\displaystyle{ R}\).
Wyznacz wektor \(\displaystyle{ PR}\).
Odległość punktu \(\displaystyle{ R}\) od prostej oblicz ze wzoru:
\(\displaystyle{ d= \frac{ \left| \vec{PQ} \times \vec{PR}\right| }{\left| \vec{PQ} \right|}}\)
EDIT: Wzór jest poprawny.