Analitička geometrija prostora (2. dio)
Presjek dvaju pravaca
Pravci su zadani svojim vektorskim jednadžbama
Zajednička točka (ako postoji) pravaca \(p_1\) i \(p_2\) mora zadovoljavati sustav linearnih jednadžbi
odnosno u matričnom obliku
Neka je \(A\) matrica sustava i \(A_p\) proširena matrica sustava, tj.
- Ako je \(r(A)=1\) i \(r(A_p)=1\), tada se pravci \(p_1\) i \(p_2\) podudaraju.
- Ako je \(r(A)=1\) i \(r(A_p)=2\), tada su pravci \(p_1\) i \(p_2\) paralelni.
- Ako je \(r(A)=2\) i \(r(A_p)=3\), tada su pravci \(p_1\) i \(p_2\) mimosmjerni.
- Ako je \(r(A)=2\) i \(r(A_p)=2\), tada se pravci \(p_1\) i \(p_2\) sijeku, tj. promatrani sustav ima jedinstveno rješenje \((u,v)\). Koordinate \((x,y,z)\) od presječne točke dobivamo uvrštavanjem vrijednosti \(u\) u jednadžbu pravca \(p_1\) ili uvrštavanjem vrijednosti \(v\) u jednadžbu pravca \(p_2\).
Primjer
Zadani su pravci \(p_1\dotsc\frac{x-1}{8}=\frac{y+2}{-3}=\frac{z+1}{1}\) i \(p_2\dotsc\frac{x-6}{2}=\frac{y+3}{1}=\frac{z-1}{3}\). Ispitajte da li se pravci \(p_1\) i \(p_2\) sijeku i odredite njihov presjek ukoliko postoji.
clear p1 p2 presjek p1.tocka = [1 -2 -1]; p1.vektor = [8 -3 1]; p2.tocka = [6 -3 1]; p2.vektor = [2 1 3]; A = [p1.vektor; -p2.vektor]'; B = (p2.tocka - p1.tocka)'; disp(repmat('-',1,50)); disp('pravci se sijeku ako je r(A)=r(Ap)=2'); disp(repmat('-',1,50)); printf('r(A) = %d\n', rank(A)); printf('r(Ap) = %d\n', rank([A B])); disp(repmat('-',1,50)); rj = A\B; presjek.u = rj(1); presjek.v = rj(2); presjek.tocka = p1.tocka + p1.vektor .* repmat(rj(1),1,3)
rješenje pomoću simboličkog računa
pkg load symbolic syms x y z u v rj = solve([x == 8*u+1, y == -3*u-2, z == u-1, x == 2*v+6, y == v-3, z == 3*v+1], x,y,z,u,v); [rj.x rj.y rj.z] double([rj.x rj.y rj.z]) [rj.u rj.v] double([rj.u rj.v])
Implementacija funkcije za traženje presjeka dvaju pravaca
Sadržaj datoteke interLL.m
function presjek = interLL(pr1, pr2) #{ interLL(pr1, pr2) daje presjek dvaju pravaca ukoliko on postoji. --------------------------------------------------------------------------------- pr1 -> struct("tocka", [x1 y1 z1], "vektor", [a1 a2 a3]) pr2 -> struct("tocka", [x2 y2 z2], "vektor", [b1 b2 b3]) na izlazu se vraca struktura koja sadrzi polja "tocka" -> presjek pravaca "u" -> parametar za koji se presjek dobiva na prvom pravcu "v" -> parametar za koji se presjek dobiva na drugom pravcu --------------------------------------------------------------------------------- ako se pravci podudaraju, funkcija vraca vrijednost 1 ako su pravci paralelni, funkcija vraca vrijednost 2 ako su pravci mimosmjerni, funkcija vraca vrijednost 3 ako pravci nisu dobro definirani, funkcija vraca vrijednost 0 --------------------------------------------------------------------------------- #} if !any(pr1.vektor) disp("Error: vektor smjera prvog pravca je nulvektor"); presjek = 0; return; endif if !any(pr2.vektor) disp("Error: vektor smjera drugog pravca je nulvektor"); presjek = 0; return; endif A = [pr1.vektor; -pr2.vektor]'; B = (pr2.tocka - pr1.tocka)'; r1 = rank(A); r2 = rank([A B]); if r1 != r2 if r1 == 1 disp("pravci su paralelni"); presjek = r2; return; else disp("pravci su mimosmjerni"); presjek = r2; return; endif else if r1 == 1 disp("pravci se podudaraju"); presjek = r2; return; else rj = A\B; presjek.u = rj(1); presjek.v = rj(2); presjek.tocka = pr1.tocka + pr1.vektor .* repmat(rj(1),1,3); endif endif endfunction
korištenje funkcije interLL
clear p1 p2 p1.tocka = [1 -2 -1]; p1.vektor = [8 -3 1]; p2.tocka = [6 -3 1]; p2.vektor = [2 1 3]; rj = interLL(p1,p2) format rat rj
Zadaci
-
Zadan je pravac \(p\dotsc\frac{x-2}{1}=\frac{y+4}{-2}=\frac{z+1}{1}\) i točka \(A(3,4,2)\).
- Odredite jednadžbu normale \(n\) iz točke \(A\) na pravac \(p\).
- Odredite simetričnu točku točke \(A\) s obzirom na pravac \(p\).
- Odredite sve točke na pravcu \(p\) koje su od točke \(A\) udaljene \(10\sqrt{2}\).
-
Zadane su točke \(A(0,4,5)\), \(B(0,0,2)\) i \(C(6,0,2)\).
- Odredite točku \(T\) u kojoj simetrala \(s_{\beta}\) unutarnjeg kuta trokuta \(ABC\) pri vrhu \(B\) siječe stranicu \(\overline{AC}\).
- Odredite u kojem omjeru točka \(T\) dijeli dužinu \(\overline{AC}\).
-
Zadani su pravci \(p_1\dotsc\frac{x}{-2}=\frac{y-1}{2}=\frac{z-2}{1}\) i \(p_2\dotsc\frac{x-1}{2}=\frac{y-1}{0}=\frac{z-3}{-2}\).
- Pokažite da su \(p_1\) i \(p_2\) mimosmjerni pravci.
- Odredite zajedničku normalu pravaca \(p_1\) i \(p_2\).
- Izračunajte udaljenost pravaca \(p_1\) i \(p_2\).
-
Napišite u Octavi funkciju
ortosimLine(pr, M)
koja na izlazu daje ortogonalnu projekciju točkeM
na pravacpr
i njezinu simetričnu točku s obzirom na taj pravac. -
Napišite u Octavi funkciju
mimoLL(p1, p2)
koja na izlazu daje vektor smjera zajedničke normale mimosmjernih pravacap1
ip2
, njezine presjekeS1
iS2
s tim pravcima te parametreu
iv
za koje se točkeS1
iS2
dobivaju na pravcimap1
ip2
. Prilagodite funkciju da dobro radi u slučaju kada se pravcip1
ip2
sijeku. U tom slučaju se točkeS1
iS2
podudaraju s točkomS
koja je presjek pravacap1
ip2
.