wzor na rzut pionowy - poszukiwanie bledu

Obiekty i przekształcenia geometryczne, opisane za pomocą układu (nie zawsze prostokątnego) współrzędnych.
Myrag
Użytkownik
Użytkownik
Posty: 32
Rejestracja: 11 lis 2009, o 23:37
Płeć: Mężczyzna
Lokalizacja: Czesta
Podziękował: 1 raz
Pomógł: 5 razy

wzor na rzut pionowy - poszukiwanie bledu

Post autor: Myrag »

ROZWIAZANE JUZ :)

no to tak chcialem sobie znalezc rzut pionowy punktu na plaszczyzne opisana za pomoca puntow XYZ
przez rzut ptionowy mam na mysli rzut rownoleglu do osi Y

no wiadomo ze wektor kierunkowy takiego rzutu to [0,1,0] ale zeby bylo formalnie policzymy wzorami

niech A bedzie punktem w przestrzeni, B punktem znajdujacym sie o 'a' jednosttek nizej, aby stworzyc rzut
pionowy

\(\displaystyle{ A=(x1, y1, z1)}\)
\(\displaystyle{ B=(x1, y1 - a, z1)}\)

za 'a' mozemy podstawic sobie jedynke dla uproszczenia obliczen

\(\displaystyle{ B=(x1, y1 - 1, z1)}\)

wektor \(\displaystyle{ \vec{AB}}\) bedzie wektorem kierunkowym prostej

\(\displaystyle{ \vec{AB}=[x1-x1, y1 - 1 -y1, z1-z1]=[0,-1,0]}\)

wtedy wzor takiej prostej okreslamy

\(\displaystyle{ L = \begin{cases} x = 0 \times t + x1 \\ y = -1 \times t + y1 \\ z = 0 \times t + z1 \end{cases}}\)

\(\displaystyle{ \begin{cases} x = x1 \\ y = -t + y1 \\ z = z1 \end{cases}}\)

no to aby punkt przecinal prosta z plaszczyzna musi spelniac uklad

\(\displaystyle{ \begin{cases} x = x1 \\ y = -t + y1 \\ z = z1 \\ Ax + By + Cz + D = 0 \end{cases}}\)

aby wyliczyc jedyna niewiadoma we wzorze 't' postawiamy wporzedne x, y, z do wzoru plaszczyzny

\(\displaystyle{ A(x1) + B(-t + y1) + C(z1) + D = 0}\)

\(\displaystyle{ Ax1 -tB + By1 + Cz1 + D = 0}\)

\(\displaystyle{ -tB = - Ax1 - By1 - Cz1 - D}\)

\(\displaystyle{ -t = \frac{-Ax1 - By1 - Cz1 - D}{B}}\)

no wiec wstawiajac do wzoru prostej nasze -t otrzymujemy

\(\displaystyle{ \begin{cases} x = x1 \\ y = \frac{-Ax1 - By1 - Cz1 - D}{B} + y1 \\ z = z1 \end{cases}}\)

wiec mamy juz wzor na punkt rzutowany pionowo na plaszczyzne o danym wzorze



no wiec teraz przyklad

\(\displaystyle{ A=(3,5,2)}\)

wtedy \(\displaystyle{ B =(3,4,2)}\)

\(\displaystyle{ X=(0,2,0)}\)
\(\displaystyle{ Y=(4,-2,0)}\)
\(\displaystyle{ Z=(4,-2,1)}\)

wybralem specjalnie takie punkty aby latwo bylo zauwazyc ze punkt A lezy duzo powyzej naszej plaszczyzny

\(\displaystyle{ \vec{XY}=[4-0, -2 -2, 0-0]=[4,-4,0]}\)

\(\displaystyle{ \vec{XZ}=[4-0, -2 -2, 1-0]=[4,-4,1]}\)

no i liczymy sobie ich iloczyn aby orzymac wzor plaszczyzny

\(\displaystyle{ \vec{XY} \vec{} \vec{XZ}=[(-4*1)-(-4*0), -(4*1)+(4*0), (4*(-4))-(4*(-4))]=[-4, 4, 0]}\)

no wiec mamy wzor prostej

\(\displaystyle{ -4x - 4y + 0z + D = 0}\)

podstawiamy ktorys z punktow (wybralem punkt X)

\(\displaystyle{ -4*(0) - 4*(2) + 0*(0) + D = 0}\)

\(\displaystyle{ -8 + D = 0}\)

\(\displaystyle{ D = 8}\)

no wiec mamy wzor prostej

\(\displaystyle{ -4x + 4y - 8 = 0}\)

wstawiamy wszytsko do wzoru

\(\displaystyle{ \begin{cases} x = 3 \\ y = \frac{-A*(3) - B*(5) - C*(2) - 8}{-4} + 5 \\ z = 2 \end{cases}}\)

\(\displaystyle{ \begin{cases} x = 3 \\ y = \frac{-(-4)*(3) - (-4)*(5) - 0*(2) - 8}{-4} + 5 \\ z = 2 \end{cases}}\)


\(\displaystyle{ \begin{cases} x = 3 \\ y = \frac{12 + 20 - 8}{-4} + 5 \\ z = 2 \end{cases}}\)

\(\displaystyle{ \begin{cases} x = 3 \\ y = \frac{24}{-4} + 5 \\ z = 2 \end{cases}}\)

\(\displaystyle{ \begin{cases} x = 3 \\ y = -1 \\ z = 2 \end{cases}}\)






edit: Dobra zauwazylem blad, byl on podczas liczenia iloczynu wektorowego
srodkowa czesc iloczynu nie byla pomnozona przez -1 co dawalo bledny wynik juz do konca
sam wzor jest dobre zbudowany

blad tu:
\(\displaystyle{ \vec{XY} \vec{} \vec{XZ}=[(-4*1)-(-4*0), (4*1)-(4*0), (4*(-4))-(4*(-4))]=[-4, 4, 0]}\)
poprawiony na:
\(\displaystyle{ \vec{XY} \vec{} \vec{XZ}=[(-4*1)-(-4*0), -(4*1)+(4*0), (4*(-4))-(4*(-4))]=[-4, 4, 0]}\)

wszytskie dzialania powyzej sa juz poprawione


gdyby ktos nie chcial najpierw liczyc tych wektorow zamiast tego miec odrazu wzor w ktory wstawiasz 4 punkty i masz wynik to juz wyprowadzam dla was wzor, moze komus sie przyda

\(\displaystyle{ X=(x2,y2,z2)}\)
\(\displaystyle{ Y=(x3,y3,z3)}\)
\(\displaystyle{ Z=(x4,y4,z4)}\)

\(\displaystyle{ \vec{XY}=[x3-x2, y3-y2, z3-z2]}\)

\(\displaystyle{ \vec{XZ}=[x4-x2, y4-y2, z4-z2]}\)

\(\displaystyle{ \vec{v} = \vec{XY} \times \vec{XZ}}\)

\(\displaystyle{ \vec{v} = [ (y3-y2)*(z4-z2)-(y4-y2)*(z3-z2), -(x3-x2)*(z4-z2)+(x4-x2)*(z3-z2), (x3-x2)*(y4-y2)+(x4-x2)*(y3-y2) ]}\)

wzor plaszczyzny wtedy to

\(\displaystyle{ ((y3-y2)*(z4-z2)-(y4-y2)*(z3-z2)) \times x + (-(x3-x2)*(z4-z2)+(x4-x2)*(z3-z2)) \times y + ((x3-x2)*(y4-y2)+(x4-x2)*(y3-y2)) z + D = 0}\)

D to odwrotnosc tego co stoi przed nim czyli

\(\displaystyle{ ((y3-y2)*(z4-z2)-(y4-y2)*(z3-z2)) \times x + (-(x3-x2)*(z4-z2)+(x4-x2)*(z3-z2)) \times y + ((x3-x2)*(y4-y2)+(x4-x2)*(y3-y2)) z - (((y3-y2)*(z4-z2)-(y4-y2)*(z3-z2)) \times x + (-(x3-x2)*(z4-z2)+(x4-x2)*(z3-z2)) \times y + ((x3-x2)*(y4-y2)+(x4-x2)*(y3-y2))) = 0}\)


WZOR wyszedl taki duzy ze latech sobie z nim nie poradzil wiec wrzuce bez kresek ulamkowych i innych znakow

mino wszytsko znajac tylko,

\(\displaystyle{ A=(x1,y1,z1)}\)
\(\displaystyle{ X=(x2,y2,z2)}\)
\(\displaystyle{ Y=(x3,y3,z3)}\)
\(\displaystyle{ Z=(x4,y4,z4)}\)

to punkt C rzucony pionowo na plaszczyne ma wzor

\(\displaystyle{ x = x1}\)
\(\displaystyle{ y = (-((y3-y2)*(z4-z2)-(y4-y2)*(z3-z2)) * x - (-(x3-x2)*(z4-z2)+(x4-x2)*(z3-z2)) * y - ((x3-x2)*(y4-y2)+(x4-x2)*(y3-y2)) z + (((y3-y2)*(z4-z2)-(y4-y2)*(z3-z2)) * x + (-(x3-x2)*(z4-z2)+(x4-x2)*(z3-z2)) * y + ((x3-x2)*(y4-y2)+(x4-x2)*(y3-y2))))/(- (-(x3-x2)*(z4-z2)+(x4-x2)*(z3-z2)) * y) + y1}\)
\(\displaystyle{ z = z1}\)

wyglada glupio ale zawsze jest to jeden konkretny wzor dajacy odrazu wynik :)
ODPOWIEDZ