Czy punkt należy do prostej (w przestrzeni trójwymiarowej)

Obiekty i przekształcenia geometryczne, opisane za pomocą układu (nie zawsze prostokątnego) współrzędnych.
oggylwiatko
Użytkownik
Użytkownik
Posty: 17
Rejestracja: 13 cze 2009, o 14:05
Płeć: Mężczyzna
Podziękował: 2 razy

Czy punkt należy do prostej (w przestrzeni trójwymiarowej)

Post autor: oggylwiatko »

Jak w najprostszy sposób sprawdzić czy dany punkt S należy do prostej k w przestrzeni trójwymiarowej ? Prosta k wyrażona jest w postaci parametrycznej.

Pierwsze co mi przyszło do głowy to podstawienie współrzędnych punktu do równań prostej. Przyjmijmy pewne oznaczenia:
\(\displaystyle{ S=(s_x, s_y, s_z)}\)
\(\displaystyle{ k:\\
x = p_x + d_xu\\
y = p_y + d_yu\\
z = p_z + d_zu}\)

Po wspomnianym podstawieniu otrzymamy:
\(\displaystyle{ s_x = p_x + d_xu\\
s_y = p_y + d_yu\\
s_z = p_z + d_zu}\)

Czyli:
\(\displaystyle{ u_1 = \frac{s_x - p_x}{d_x}\\
u_2 = \frac{s_y - p_y}{d_y}\\
u_3 = \frac{s_z - p_z}{d_z}}\)

Jeżeli punkt należy do prostej to \(\displaystyle{ u_1, u_2, u_3}\) będą sobie równe. Problem pojawia się gdy któreś z \(\displaystyle{ d_x, d_y \hbox{ lub } d_z}\) jest równe 0. Jest jakiś lepszy sposób na sprawdzenie czy punkt należy do prostej ?
Ostatnio zmieniony 18 gru 2010, o 21:23 przez Crizz, łącznie zmieniany 1 raz.
Powód: Temat umieszczony w złym dziale.
Crizz
Użytkownik
Użytkownik
Posty: 4094
Rejestracja: 10 lut 2008, o 15:31
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 12 razy
Pomógł: 805 razy

Czy punkt należy do prostej (w przestrzeni trójwymiarowej)

Post autor: Crizz »

A czemu to niby miałby być problem? Jeśli np. \(\displaystyle{ d_x=0}\), to musi zachodzić \(\displaystyle{ s_x=p_x}\), inaczej nie ma co sobie zawracać głowy punktem \(\displaystyle{ S}\).

Alternatywnie, możesz wyliczać np. tylko \(\displaystyle{ u_1}\), podstawiać do przepisów na \(\displaystyle{ y,z}\) i sprawdzać, czy otrzymujesz \(\displaystyle{ y=s_y,z=s_z}\). Prostszej metody niż te dwie to już chyba nie ma.
oggylwiatko
Użytkownik
Użytkownik
Posty: 17
Rejestracja: 13 cze 2009, o 14:05
Płeć: Mężczyzna
Podziękował: 2 razy

Czy punkt należy do prostej (w przestrzeni trójwymiarowej)

Post autor: oggylwiatko »

To się tak łatwo mówi, ale w implementacji w programie wygląda to trochę gorzej ponieważ pojawia się masa instrukcji warunkowych. Ale wykorzystałem równanie kanoniczne sfery przy założeniu, że sfera ma promień równy 0. Dzięki temu mam do rozwiązania zwykłe równanie kwadratowe. Chyba ładniej to wygląda niż ileś tam warunków
Crizz
Użytkownik
Użytkownik
Posty: 4094
Rejestracja: 10 lut 2008, o 15:31
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 12 razy
Pomógł: 805 razy

Czy punkt należy do prostej (w przestrzeni trójwymiarowej)

Post autor: Crizz »

Można i tak. Chciałbym tylko dodać małą uwagę: pisząc program, powinno się zwracać większą uwagę na szybkość kodu, niż na elegancję. Podejrzewam, że porównanie (w instrukcji warunkowej) jest "tańsze" obliczeniowo, niż działania mnożenia (w podstawianiu współrzednych do równania sfery i obliczaniu wartości).
ODPOWIEDZ