Punkt przecięcia prostej i płaszczyzny

Obiekty i przekształcenia geometryczne, opisane za pomocą układu (nie zawsze prostokątnego) współrzędnych.
Ma3sTr0
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 7 lut 2012, o 21:13
Płeć: Mężczyzna
Lokalizacja: Rzeszów
Podziękował: 1 raz

Punkt przecięcia prostej i płaszczyzny

Post autor: Ma3sTr0 »

Witam, muszę wyznaczyć wzory do obliczania punktu przecięcia się prostej przechodzącej przez 2 punkty, z płaszczyzną do wyznaczenia której mamy 4 punkty.
Z geometrii co nieco kojarzę, ale niestety nie miałem do czynienia z geometrią w układzie 3 wymiarowym - R3.
Dodam że potrzebuję tego tylko na własny użytek, piszę pewny program i bardzo tego potrzebuję, nie obejdzie się bez tego.
Tak więc, byłbym bardzo wdzięczny za podrzucenie jakiś linków, do dobrych kursów, jakiś podpowiedzi co jak liczyć, czy nawet do gotowych wzorów(najlepiej z całym tokiem wyliczania wszystkiego)
Jestem otwarty na wszelkie opcje, tylko prosił bym o jasne wyjaśnienia
octahedron
Użytkownik
Użytkownik
Posty: 3568
Rejestracja: 7 mar 2011, o 22:16
Płeć: Mężczyzna
Lokalizacja: Wrocław
Pomógł: 910 razy

Punkt przecięcia prostej i płaszczyzny

Post autor: octahedron »

Płaszczyznę wyznaczają trzy punkty, więc czwarty albo jest niepotrzebny, albo nie leży na płaszczyźnie z pozostałymi. Ogólne równanie płaszczyzny to \(\displaystyle{ Ax+By+Cz+D=0}\), więc można ułożyć układ równań:

\(\displaystyle{ \begin{cases} Ax_1+By_1+Cz_1+D=0\\Ax_2+By_2+Cz_2+D=0\\Ax_3+By_3+Cz_3+D=0 \end{cases}}\)

mamy trzy równania i cztery niewiadome \(\displaystyle{ A,B,C,D}\), więc jedną z nich będzie można przyjąć dowolnie. Równanie prostej przez dwa punkty:

\(\displaystyle{ \begin{cases}x=x_1+(x_2-x_1)t\\y=y_1+(y_2-y_1)t\\z=z_1+(z_2-z_1)t \end{cases}}\)

gdzie \(\displaystyle{ t}\) jest parametrem. Podstawiamy \(\displaystyle{ x,y,z}\) do równania płaszczyny, wyliczamy \(\displaystyle{ t}\) i z powrotem podstawiamy do równania prostej, wyjdą współrzędne punktu przecięcia, chyba że prosta jest równoległa do płaszczyzny.
Ma3sTr0
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 7 lut 2012, o 21:13
Płeć: Mężczyzna
Lokalizacja: Rzeszów
Podziękował: 1 raz

Punkt przecięcia prostej i płaszczyzny

Post autor: Ma3sTr0 »

robiąc układ równań z 3 punktów wyszły mi takie wzory:
punkty: \(\displaystyle{ A\left( x1,y1,z1\right) B\left( x2,y2,z2\right) C\left( x3,y3,z3\right)}\)
zakładam na start
\(\displaystyle{ A=1}\)

\(\displaystyle{ B= \frac{-\left( x3-x1\right)\left( z2-z1\right)-\left( x2-x1\right)\left( z3-z1\right) }{\left( y3-y1\right)\left( z2-z1\right)+\left( y2-y1\right)\left( z3-z1\right)}}\)

\(\displaystyle{ C= \frac{\left( x2-x1\right)+B*\left( y2-y1\right)}{z2-z1}}\)

\(\displaystyle{ D=-x1-y1*B-z1*C}\)

Tutaj się pojawia pytanie, co w przypadku gdy w równaniu na C z2-z1 wyjdzie równe 0
grono naukowe tego świata mówi że nie można dzielić przez 0, to co w tym wypadku zrobić ?:)

zakładając punkty: \(\displaystyle{ A\left( 2,1,0\right) B\left( 4,3,0\right) C\left( 1,2,2\right)}\)
powinno wyjść: \(\displaystyle{ A=1, B=-1, C=1, D=-1}\)
A i B wychodzi jak należy, tylko przy C wychodzi to zero. Jakieś porady ?

I jeszcze tak na uboczu pytanko czy da się jakieś proste(nie parametryczne) równanie prostej z 2 punktów wyznaczyć, aby łatwo było porównywać - wyliczać ten punkt przecięcia.(z równaniami parametrycznymi nie miałem do czynienia jeszcze za bardzo, więc z tym może być ciężko, chyba że dostał bym jakiś łatwy przykład/tutorial do przeanalizowania)
octahedron
Użytkownik
Użytkownik
Posty: 3568
Rejestracja: 7 mar 2011, o 22:16
Płeć: Mężczyzna
Lokalizacja: Wrocław
Pomógł: 910 razy

Punkt przecięcia prostej i płaszczyzny

Post autor: octahedron »

Rozumiem, że to było metodą podstawiania? Tak zawsze może się okazać, że dzielimy przez zero. Lepiej np. wyznacznikami. Można też inaczej znaleźć \(\displaystyle{ A,B,C}\), za pomocą iloczynu wektorowego:

\(\displaystyle{ \vec{n}=[A,B,C]=\vec{P_1P_2}\times\vec{P_1P_3}}\)

i równanie płaszczyzny wygląda tak:

\(\displaystyle{ A(x-x_1)+B(y-y_1)+C(z-z_1)=0}\)

chyba tak jest wygodniej.
Z czym jest problem przy równaniu parametrycznym? Parametr wylicza się przecież łatwo. Są też równania prostej w postaci nieparametrycznej, ale są raczej mniej wygodne w tej sytuacji.
Ma3sTr0
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 7 lut 2012, o 21:13
Płeć: Mężczyzna
Lokalizacja: Rzeszów
Podziękował: 1 raz

Punkt przecięcia prostej i płaszczyzny

Post autor: Ma3sTr0 »

Tak więc dzięki waszej pomocy chyba całkowicie udało się rozwiązać problem.
Do wyznaczenia równania płaszczyzny wykorzystałem metodę wyznaczników:
na start zakładam \(\displaystyle{ D=-1}\)
\(\displaystyle{ W= x_{1} \cdot y_{2} \cdot z_{3}+x_{2} \cdot y_{3} \cdot z_{1}+x_{3} \cdot y_{1} \cdot z_{2}-z_{1} \cdot y_{2} \cdot x_{3}-z_{2} \cdot y_{3} \cdot x_{1}-z_{3} \cdot y_{1} \cdot x_{2}}\)

\(\displaystyle{ W_{A}=y_{2} \cdot z_{3}+y_{3} \cdot z_{1}+y_{1} \cdot z_{2}-z_{1} \cdot y_{2}-z_{2} \cdot y_{3}-z_{3} \cdot y_{1}}\)

\(\displaystyle{ A= \frac{W_{A}}{W}}\)

\(\displaystyle{ W_{B}=x_{1} \cdot z_{3}+x_{2} \cdot z_{1}+x_{3} \cdot z_{2}-z_{1} \cdot x_{3}-z_{2} \cdot x_{1}-z_{3} \cdot x_{2}}\)

\(\displaystyle{ B= \frac{W_{B}}{W}}\)

\(\displaystyle{ W_{C}=x_{1} \cdot y_{2}+x_{2} \cdot y_{3}+x_{3} \cdot y_{1}-y_{2} \cdot x_{3}-y_{3} \cdot x_{1}-y_{1} \cdot x_{2}}\)

\(\displaystyle{ C= \frac{W_{C}}{W}}\)

Dalej podstawiając A,B,C,D oraz:
\(\displaystyle{ x=x_{1}+\left( x_{2}-x_{1}\right) \cdot t}\)
\(\displaystyle{ y=y_{1}+\left( y_{2}-y_{1}\right) \cdot t}\)
\(\displaystyle{ z=z_{1}+\left( z_{2}-z_{1}\right) \cdot t}\)

wychodzi mi wzór na t:

\(\displaystyle{ t= \frac{-A \cdot x_{1}-B \cdot y_{1}-C \cdot z_{1}-D}{A \cdot \left( x_{2}-x_{1}\right) +B \cdot \left( y_{2}-y_{1}\right) +C \cdot \left( z_{2}-z_{1}\right) }}\)

dalej podstawiając do wzorów na x,y,z z góry, wyliczam punkt przecięcia się prostej z płaszczyzną.
Tutaj pojawia się ostatnie pytanko, czy wszystko dobrze tu rozumuję, i czy nie strzeliłem tu jakiegoś błędu ?

PS:
Później wypróbuję to w programie, to wyjdzie w praniu czy to dobrze wymyśliłem.
Ostatnio zmieniony 12 cze 2012, o 12:19 przez scyth, łącznie zmieniany 1 raz.
Powód: Symbol mnożenia to \cdot.
octahedron
Użytkownik
Użytkownik
Posty: 3568
Rejestracja: 7 mar 2011, o 22:16
Płeć: Mężczyzna
Lokalizacja: Wrocław
Pomógł: 910 razy

Punkt przecięcia prostej i płaszczyzny

Post autor: octahedron »

Chyba dobrze, nie widzę błędu.
ODPOWIEDZ