Analitička geometrija prostora u SAGE-u

verzija: SageMath 9.4

In [1]:
%display latex
In [2]:
load('MMZI.sage')
Dodatne funkcije za predmet 'Matematicke metode za informaticare'.
MMZI_naredbe je rjecnik u kojemu je po poglavljima dan popis svih dodatnih naredbi koje trenutno postoje.

1. zadatak

Zadane su točke $A(2,3,-1),$ $B(4,4,2)$ i $C(1,8,-5).$

  1. Odredite točku $D$ tako da četverokut $ABCD$ bude paralelogram.
  2. Izračunajte površinu paralelograma $ABCD$ i duljinu visine paralelograma na stranicu $\overline{AB}.$
  3. Odredite normalu ravnine u kojoj se nalazi paralelogram $ABCD.$

Rješenje

In [3]:
A=vector((2,3,-1)); B=vector((4,4,2)); C=vector((1,8,-5))

Stvarna 3D interaktivna slika. Plavi vektor je vektor ravnine paralelograma $ABCD$. Također je nanešen i iz ishodišta da se dobije bolji dojam kako je ravnina paralelograma položena s obzirom na koordinatni sustav.

In [4]:
xos=vector((0.5,0,0)).plot(radius=0.08,color='red',start=vector((7.5,0,0)))
yos=vector((0,0.5,0)).plot(radius=0.08,color='red',start=vector((0,9.5,0)))
zos=vector((0,0,0.5)).plot(radius=0.08,color='red',start=vector((0,0,4.5)))
crta1=line3d([(-4,0,0),(0,0,0)],radius=0.08,color='red')
crta1p=line3d([(0,0,0),(7.5,0,0)],radius=0.08,color='red')
crta2=line3d([(0,-4,0),(0,0,0)],radius=0.08,color='red')
crta2p=line3d([(0,0,0),(0,9.5,0)],radius=0.08,color='red')
crta3=line3d([(0,0,-10),(0,0,0)],radius=0.08,color='red')
crta3p=line3d([(0,0,0),(0,0,4.5)],radius=0.08,color='red')
ks=text3d("X",(8.2,0,0))+text3d("Y",(0,10.2,0))+text3d("Z",(0,0,5.2))+crta1+crta2+crta3+crta1p+crta2p+crta3p+xos+yos+zos
sf1=sphere((2,3,-1),size=0.15,color='blue')
sf2=sphere((4,4,2),size=0.15,color='blue')
sf3=sphere((1,8,-5),size=0.15,color='blue')
sf4=sphere((-1,7,-8),size=0.15,color='red')
tA=text3d("A",(2.06,2.69,-0.75))
tB=text3d("B",(4.17,3.89,2.34))
tC=text3d("C",(0.92,8.38,-5.31))
tD=text3d("D",(-1.21,7.12,-8.43))
par=polygon3d([(2,3,-1),(4,4,2),(1,8,-5),(-1,7,-8)],color='lime')
nn=vector((3/(13*1.73)*VP(B-A,C-A))).plot(radius=0.08,color='blue',start=vector((0,0,0)))
nn2=vector((3/(13*1.73)*VP(B-A,C-A))).plot(radius=0.08,color='blue',start=vector((1.5,5.5,-3)))
(sf1+sf2+sf3+sf4+par+nn+nn2+tA+tB+tC+tD+ks).show(viewer='threejs',online=True)

a) dio

$\vec{r}_B-\vec{r}_A=\vec{r}_C-\vec{r}_D\ \Rightarrow\ \vec{r}_D=\vec{r}_C+\vec{r}_A-\vec{r}_B$

In [5]:
D=C+A-B; D
Out[5]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(-1,\,7,\,-8\right)\]

b) dio

In [6]:
VP(B-A,D-A)
Out[6]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(-19,\,5,\,11\right)\]

površina paralelograma $ABCD$

In [7]:
pov=VP(B-A,D-A).norm(); pov
Out[7]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}13 \, \sqrt{3}\]

duljina visine paralelograma $ABCD$ na stranicu $\overline{AB}$

In [8]:
pov/dTocka(A,B)
Out[8]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\frac{13}{14} \, \sqrt{14} \sqrt{3}\]

c) dio

In [9]:
VP(B-A,D-A)
Out[9]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(-19,\,5,\,11\right)\]

2. zadatak

Trokut $ABC$ je zadan svojim vrhovima $A(-1,2,3), B(2,1,2), C(0,3,0).$

  1. Izračunajte unutarnji kut trokuta $ABC$ pri vrhu $A.$
  2. Izračunajte površinu trokuta $ABC.$
  3. Izračunajte duljinu visine trokuta $ABC$ iz vrha $B.$
  4. Ispitajte da li su vektori $\overrightarrow{AB}, \overrightarrow{AC}, \vec{d}=(3,-1,0)$ komplanarni.

Rješenje

In [10]:
A=vector((-1,2,3)); B=vector((2,1,2)); C=vector((0,3,0))

Stvarna 3D interaktivna slika.  Plavi vektori su $\overrightarrow{AB}$ i $\overrightarrow{AC}$, a $\vec{d}$ je svijetlo ljubičasti vektor.

In [11]:
xos=vector((0.5,0,0)).plot(radius=0.08,color='red',start=vector((4.5,0,0)))
yos=vector((0,0.5,0)).plot(radius=0.08,color='red',start=vector((0,4.5,0)))
zos=vector((0,0,0.5)).plot(radius=0.08,color='red',start=vector((0,0,4.5)))
crta1=line3d([(-4,0,0),(0,0,0)],radius=0.08,color='red')
crta1p=line3d([(0,0,0),(4.5,0,0)],radius=0.08,color='red')
crta2=line3d([(0,-4,0),(0,0,0)],radius=0.08,color='red')
crta2p=line3d([(0,0,0),(0,4.5,0)],radius=0.08,color='red')
crta3=line3d([(0,0,-4),(0,0,0)],radius=0.08,color='red')
crta3p=line3d([(0,0,0),(0,0,4.5)],radius=0.08,color='red')
ks=text3d("X",(5.2,0,0))+text3d("Y",(0,5.2,0))+text3d("Z",(0,0,5.2))+crta1+crta2+crta3+crta1p+crta2p+crta3p+xos+yos+zos
sf1=sphere((-1,2,3),size=0.1,color='blue')
sf2=sphere((2,1,2),size=0.1,color='blue')
sf3=sphere((0,3,0),size=0.1,color='blue')
tA=text3d("A",(-1.1,2,3.3))
tB=text3d("B",(2,1,2.3))
tC=text3d("C",(0.1,3,-0.3))
trokut=polygon3d([(-1,2,3),(2,1,2),(0,3,0)],color='lime')
vekd=vector((3,-1,0)).plot(radius=0.08,color='magenta')
AB=vector(B-A).plot(radius=0.08,color='blue')
AC=vector(C-A).plot(radius=0.08,color='blue')
(sf1+sf2+sf3+trokut+vekd+tA+tB+tC+AB+AC+ks).show(viewer='threejs',online=True)

a) dio

In [12]:
KutVektora(B-A,C-A)
Out[12]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\verb|62*|\phantom{\verb!x!}\verb|57'|\phantom{\verb!x!}\verb|51.51''|\]
In [13]:
KutVektora(B-A,C-A,izlaz=None)
Out[13]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\arccos\left(\frac{5}{11}\right)\]

b) dio

In [14]:
pov=PovrsinaTrokuta(A,B,C); pov
Out[14]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}2 \, \sqrt{6}\]

c) dio

In [15]:
2*pov/dTocka(A,C)
Out[15]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\frac{4}{11} \, \sqrt{11} \sqrt{6}\]

d) dio

Vektori nisu komplanarni jer je njihov mješoviti produkt različit od nule.

In [16]:
MP(B-A,C-A,(3,-1,0))
Out[16]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}4\]

3. zadatak

Zadana je dužina $\overline{AB}$ s koordinatama svojih krajeva $A(3,4,1)$ i $B(-5,2,-3)$.

  1. Točkama $C_1,$ $C_2$ i $C_3$ je dužina $\overline{AB}$ podijeljena na četiri jednaka dijela. Odredite koordinate točaka $C_1,$ $C_2$ i $C_3.$
  2. Odredite na pravcu $AB$ točku $D$ za koju je točka $A$ polovište dužine $\overline{C_1D}.$

Rješenje

In [17]:
A=(3,4,1); B=(-5,2,-3)

Stvarna 3D interaktivna slika

In [18]:
var('u v')
xos=vector((0.5,0,0)).plot(radius=0.08,color='red',start=vector((6.5,0,0)))
yos=vector((0,0.5,0)).plot(radius=0.08,color='red',start=vector((0,6.5,0)))
zos=vector((0,0,0.5)).plot(radius=0.08,color='red',start=vector((0,0,4.5)))
crta1=line3d([(-7,0,0),(0,0,0)],radius=0.08,color='red')
crta1p=line3d([(0,0,0),(6.5,0,0)],radius=0.08,color='red')
crta2=line3d([(0,-6,0),(0,0,0)],radius=0.08,color='red')
crta2p=line3d([(0,0,0),(0,6.5,0)],radius=0.08,color='red')
crta3=line3d([(0,0,-5),(0,0,0)],radius=0.08,color='red')
crta3p=line3d([(0,0,0),(0,0,4.5)],radius=0.08,color='red')
ks=text3d("X",(7.2,0,0))+text3d("Y",(0,7.2,0))+text3d("Z",(0,0,5.2))+crta1+crta2+crta3+crta1p+crta2p+crta3p+xos+yos+zos
sf1=sphere((3,4,1),size=0.15,color='blue')
sf2=sphere((-5,2,-3),size=0.15,color='blue')
sf3=sphere((1,3.5,0),size=0.15,color='magenta')
sf4=sphere((-1,3,-1),size=0.15,color='magenta')
sf5=sphere((-3,2.5,-2),size=0.15,color='magenta')
sf6=sphere((5,4.5,2),size=0.15,color='magenta')
duzina=line3d([(5,4.5,2),(3,4,1),(1,3.5,0),(-1,3,-1),(-3,2.5,-2),(-5,2,-3)],radius=0.08,color='lime')
tA=text3d("A",(3,4,1.32))
tB=text3d("B",(-5,2,-2.68))
tC1=text3d("C1",(1,3.5,0.32))
tC2=text3d("C2",(-1,3,-0.68))
tC3=text3d("C3",(-3,2.5,-1.68))
tD=text3d("D",(5,4.5,2.32))
ravxy=parametric_plot3d([u,v,0],(u,-7,6.5),(v,-6,6.5),color='yellow',opacity=0.5)
(sf1+sf2+sf3+sf4+sf5+sf6+duzina+tA+tB+tC1+tC2+tC3+tD+ravxy+ks).show(viewer='threejs',online=True)

a) dio

In [19]:
[Omjer(A,B,-1/3),Omjer(A,B,-1),Omjer(A,B,-3)]
Out[19]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(1,\,\frac{7}{2},\,0\right), \left(-1,\,3,\,-1\right), \left(-3,\,\frac{5}{2},\,-2\right)\right]\]

b) dio

In [20]:
Omjer(A,B,1/5)
Out[20]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(5,\,\frac{9}{2},\,2\right)\]

4. zadatak

Trokut $ABC$ je zadan s $A(1,1,1), B(1,-1,4), C(-3,5,6).$

  1. Provjerite da li je trokut $ABC$ pravokutan.
  2. Odredite unutarnji kut trokuta $ABC$ pri vrhu $B.$
  3. Izračunajte volumen paralelepipeda određenog s vektorima $\overrightarrow{AB}, \overrightarrow{BC}, \vec{d}=(-6,0,5).$
  4. Odredite visinu paralelepipeda spuštenu na bazu određenu vektorima $\overrightarrow{AB}, \overrightarrow{BC}.$

Rješenje

In [21]:
A=vector((1,1,1)); B=vector((1,-1,4)); C=vector((-3,5,6))

Stvarna 3D interaktivna slika. Paralelepiped razapet vektorima $\overrightarrow{AB},$ $\overrightarrow{BC}$ (plavi vektori) i $\vec{d}$ (svijetlo ljubičasti vektor) smješten je tako da ima jedan vrh u ishodištu koordinatnog sustava.

In [22]:
xos=vector((0.5,0,0)).plot(radius=0.08,color='red',start=vector((4.5,0,0)))
yos=vector((0,0.5,0)).plot(radius=0.08,color='red',start=vector((0,7,0)))
zos=vector((0,0,0.5)).plot(radius=0.08,color='red',start=vector((0,0,9)))
crta1=line3d([(-11,0,0),(0,0,0)],radius=0.08,color='red')
crta1p=line3d([(0,0,0),(4.5,0,0)],radius=0.08,color='red')
crta2=line3d([(0,-4,0),(0,0,0)],radius=0.08,color='red')
crta2p=line3d([(0,0,0),(0,7,0)],radius=0.08,color='red')
crta3=line3d([(0,0,-2),(0,0,0)],radius=0.08,color='red')
crta3p=line3d([(0,0,0),(0,0,9)],radius=0.08,color='red')
ks=text3d("X",(5.2,0,0))+text3d("Y",(0,7.7,0))+text3d("Z",(0,0,9.7))+crta1+crta2+crta3+crta1p+crta2p+crta3p+xos+yos+zos
sf1=sphere((1,1,1),size=0.15,color='blue')
sf2=sphere((1,-1,4),size=0.15,color='blue')
sf3=sphere((-3,5,6),size=0.15,color='blue')
tA=text3d("A",(1,1,0.6))
tB=text3d("B",(1.1,-1,3.6))
tC=text3d("C",(-3,5,5.5))
trokut=polygon3d([(1,1,1),(1,-1,4),(-3,5,6)],color='pink')
vekd=vector((-6,0,5)).plot(radius=0.08,color='magenta')
AB=vector(B-A).plot(radius=0.08,color='blue')
BC=vector(C-B).plot(radius=0.08,color='blue')
d=vector((-6,0,5))
str1=polygon3d([(0,0,0),(0,-2,3),(-6,-2,8),(-6,0,5)],color='lime',opacity=0.5)
str3=polygon3d([(0,0,0),(-6,0,5),(-10,6,7),(-4,6,2)],color='yellow',opacity=0.5)
str2=polygon3d([(0,0,0),B-A,C-A,C-B],color='cyan',opacity=0.5)
str4=polygon3d([B-A,C-A,C-A+d,(-6,-2,8)],color='yellow',opacity=0.5)
str5=polygon3d([C-A,C-A+d,(-10,6,7),C-B],color='lime',opacity=0.5)
str6=polygon3d([d,(-6,-2,8),C-A+d,(-10,6,7)],color='cyan',opacity=0.5)
lin2=line3d([(0,-2,3),(-6,-2,8)],radius=0.08,color='brown')
lin3=line3d([(-4,6,2),(-10,6,7)],radius=0.08,color='brown')
lin4=line3d([(-6,0,5),(-6,-2,8)],radius=0.08,color='brown')
lin5=line3d([(-6,0,5),(-10,6,7)],radius=0.08,color='brown')
lin1=line3d([B-A,C-A],radius=0.08,color='brown')
lin6=line3d([C-A,C-B],radius=0.08,color='brown')
lin7=line3d([C-A,C-A+d],radius=0.08,color='brown')
lin8=line3d([C-A+d,(-6,-2,8)],radius=0.08,color='brown')
lin9=line3d([C-A+d,(-10,6,7)],radius=0.08,color='brown')
(sf1+sf2+sf3+trokut+vekd+AB+BC+tA+tB+tC+str1+str2+str3+str4+str5+str6+lin1+lin3+
   lin2+lin4+lin5+lin6+lin7+lin8+lin9+ks).show(viewer='threejs',online=True)

a) dio

Trokut $ABC$ nije pravokutan jer ne zadovoljava Pitagorin poučak.

In [23]:
duljine=[dTocka(A,B),dTocka(A,C),dTocka(B,C)]; duljine
Out[23]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\sqrt{13}, \sqrt{57}, 2 \, \sqrt{14}\right]\]
In [24]:
pitagora=duljine[1]^2==(duljine[0]^2+duljine[2]^2)
pitagora.test_relation()
Out[24]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\mathrm{False}\]

b) dio

In [25]:
KutVektora(A-B,C-B,izlaz=None)
Out[25]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\arccos\left(\frac{3}{182} \, \sqrt{14} \sqrt{13}\right)\]
In [26]:
KutVektora(A-B,C-B)
Out[26]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\verb|77*|\phantom{\verb!x!}\verb|9'|\phantom{\verb!x!}\verb|5.20''|\]

c) dio

In [27]:
V=abs(MP(B-A,C-B,(-6,0,5))); V
Out[27]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}92\]

d) dio

In [28]:
VP(B-A,C-B)
Out[28]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(-22,\,-12,\,-8\right)\]
In [29]:
baza=VP(B-A,C-B).norm(); baza
Out[29]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}2 \, \sqrt{173}\]

duljina visine

In [30]:
V/baza
Out[30]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\frac{46}{173} \, \sqrt{173}\]

5. zadatak

Zadani je pravac $p\ldots\frac{x-2}{1}=\frac{y+4}{-2}=\frac{z+1}{1}$ i točka $A(3,4,2)$.

  1. Odredite jednadžbu normale $n$ iz točke $A$ na pravac $p$.
  2. Odredite udaljenost točke $A$ od pravca $p$.
  3. Odredite sve točke na pravcu $p$ koje su od točke $A$ udaljene za $10\sqrt{2}$.

Rješenje

In [31]:
A=vector((3,4,2))

Interaktivna 3D slika. Prikazana je točka $A$ i njezina ortogonalna projekcija $A'$ na pravac $p$. Prikazane su na pravcu $p$ točke $T_1$ i $T_2$ iz c) dijela zadatka koje su od točke $A$ udaljene za $10\sqrt{2}$. Pravac $AA'$ je normala iz točke $A$ na pravac $p$.

In [32]:
var('u v')
xos=vector((0.5,0,0)).plot(radius=0.08,color='red',start=vector((4.5,0,0)))
yos=vector((0,0.5,0)).plot(radius=0.08,color='red',start=vector((0,5.5,0)))
zos=vector((0,0,0.5)).plot(radius=0.08,color='red',start=vector((0,0,4.5)))
crta1=line3d([(-5,0,0),(0,0,0)],radius=0.08,color='red')
crta1p=line3d([(0,0,0),(4.5,0,0)],radius=0.08,color='red')
crta2=line3d([(0,-6,0),(0,0,0)],radius=0.08,color='red')
crta2p=line3d([(0,0,0),(0,5.5,0)],radius=0.08,color='red')
crta3=line3d([(0,0,-5.5),(0,0,0)],radius=0.08,color='red')
crta3p=line3d([(0,0,0),(0,0,4.5)],radius=0.08,color='red')
ks=text3d("X",(5.2,0,0))+text3d("Y",(0,6.2,0))+text3d("Z",(0,0,5.2))+crta1+crta2+crta3+crta1p+crta2p+crta3p+xos+yos+zos
sf1=sphere((1.5,2,1),size=0.2,color='blue')
sf2=sphere((0,0,-1.5),size=0.2,color='lime')
sf3=sphere((2.5,-5,1),size=0.2,color='cyan')
sf4=sphere((-2.5,5,-4),size=0.2,color='cyan')
tA=text3d("A",(1.5,2,1.4))
tAc=text3d("A'",(-0.3,0,-1.3))
tT1=text3d("T1",(2.5,-5,1.4))
tT2=text3d("T2",(-2.5,5,-3.6))
prav1=line3d([(3.25,-6.5,1.75),(2.5,-5,1)],radius=0.08,color='magenta')
prav2=line3d([(2.5,-5,1),(0,0,-1.5)],radius=0.08,color='magenta')
prav3=line3d([(0,0,-1.5),(-2.5,5,-4)],radius=0.08,color='magenta')
prav4=line3d([(-2.5,5,-4),(-3.25,6.5,-4.75)],radius=0.08,color='magenta')
prav5=line3d([(2.4,3.2,2.5),(1.5,2,1)],radius=0.08,color='orange')
prav6=line3d([(1.5,2,1),(0,0,-1.5)],radius=0.08,color='orange')
prav7=line3d([(0,0,-1.5),(-1.95,-2.6,-4.75)],radius=0.08,color='orange')
prav8=line3d([(1.5,2,1),(2.5,-5,1)],radius=0.05,color='brown')
prav9=line3d([(1.5,2,1),(-2.5,5,-4)],radius=0.05,color='brown')
ravxy=parametric_plot3d([u,v,0],(u,-5,5),(v,-6,6.5),color='yellow',opacity=0.5)
(sf1+sf2+sf3+sf4+prav1+prav2+prav3+prav4+prav5+prav6+prav7+prav8+prav9+tA+tAc+
 tT1+tT2+ravxy+ks).show(viewer='threejs',online=True)

a) dio

  $n\ldots\dfrac{x-3}{3}=\dfrac{y-4}{4}=\dfrac{z-2}{5}$

In [33]:
ProjekcijaTockaPravac(A,(1,-2,1),(2,-4,-1))
Out[33]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(0,\,0,\,-3\right), t = \left(-2\right)\right]\]

vektor smjera normale

In [34]:
NormalaTockaPravac(A,(1,-2,1),(2,-4,-1))
Out[34]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(-3,\,-4,\,-5\right)\]

b) dio

In [35]:
dTockaPravac(A,(1,-2,1),(2,-4,-1),full=True)
Out[35]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\frac{5}{3} \, \sqrt{6} \sqrt{3}\]

c) dio

In [36]:
var('t')
T=vector((t+2,-2*t-4,t-1))
In [37]:
ud=dTocka(A,T,full=True); ud
Out[37]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\sqrt{6 \, t^{2} + 24 \, t + 74}\]
In [38]:
rj=solve(ud==10*sqrt(2),t); rj
Out[38]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[t = 3, t = \left(-7\right)\right]\]
In [39]:
[T.subs(rj[0]),T.subs(rj[1])]
Out[39]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(5,\,-10,\,2\right), \left(-5,\,10,\,-8\right)\right]\]

6. zadatak

Odredite ortogonalnu projekciju točke $B(3,1,1)$ trokuta $ABC$ na simetralu kuta između stranica $\overline{AB}$ i $\overline{AC}$ ako je $A(1,-1,2)$ i $C(0,-3,4)$.

Rješenje

In [40]:
A=vector((1,-1,2)); B=vector((3,1,1)); C=vector((0,-3,4))

Interaktivna 3D slika. Ortogonalna projekcija točke $B$ na simetralu kuta između stranica $\overline{AB}$ i $\overline{AC}$ je točka $B'$. Uočite da se točka $B'$ zapravo podudara s polovištem stranice $\overline{BC}$ zbog toga što je $ABC$ jednakokračni trokut jer je $|AB|=|AC|$.

In [41]:
var('t')
xos=vector((0.5,0,0)).plot(radius=0.08,color='red',start=vector((4.5,0,0)))
yos=vector((0,0.5,0)).plot(radius=0.08,color='red',start=vector((0,4.5,0)))
zos=vector((0,0,0.5)).plot(radius=0.08,color='red',start=vector((0,0,4.5)))
crta1=line3d([(-4,0,0),(0,0,0)],radius=0.08,color='red')
crta1p=line3d([(0,0,0),(4.5,0,0)],radius=0.08,color='red')
crta2=line3d([(0,-4,0),(0,0,0)],radius=0.08,color='red')
crta2p=line3d([(0,0,0),(0,4.5,0)],radius=0.08,color='red')
crta3=line3d([(0,0,-1.7),(0,0,0)],radius=0.08,color='red')
crta3p=line3d([(0,0,0),(0,0,4.5)],radius=0.08,color='red')
ks=text3d("X",(5.2,0,0))+text3d("Y",(0,5.2,0))+text3d("Z",(0,0,5.2))+crta1+crta2+crta3+crta1p+crta2p+crta3p+xos+yos+zos
sf1=sphere((1,-1,2),size=0.13,color='blue')
sf2=sphere((3,1,1),size=0.13,color='blue')
sf3=sphere((0,-3,4),size=0.13,color='blue')
sf4=sphere((1.5,-1,2.5),size=0.13,color='cyan')
tA=text3d("A",(1,-1,1.7))
tB=text3d("B",(3,1,1.3))
tC=text3d("C",(0,-3,3.65))
tBc=text3d("B'",(1.5,-1,2.8))
trokut=polygon3d([(1,-1,2),(3,1,1),(0,-3,4)],color='lime')
prav1=parametric_plot3d([1+t,-1,2+t],(t,0,0.5),radius=0.03,color='magenta')
prav2=parametric_plot3d([1+t,-1,2+t],(t,0.5,2),radius=0.03,color='magenta')
prav3=line3d([(3,1,1),(1.5,-1,2.5)],radius=0.08,color='orange')
(sf1+sf2+sf3+sf4+trokut+tA+tB+tC+tBc+prav1+prav2+prav3+ks).show(viewer='threejs',online=True)
In [42]:
[(B-A).norm(),(C-A).norm()]
Out[42]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[3, 3\right]\]

Vektori $\overrightarrow{AB}$ i $\overrightarrow{AC}$ su jednakih duljina pa je vektor smjera simetrale njihovog kuta jednak

In [43]:
sim=(B-A)+(C-A); sim
Out[43]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(1,\,0,\,1\right)\]

Ortogonalna projekcija točke $B$ na simetralu kuta između stranica $\overline{AB}$ i $\overline{AC}$

In [44]:
ProjekcijaTockaPravac(B,sim,A)
Out[44]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(\frac{3}{2},\,-1,\,\frac{5}{2}\right), t = \left(\frac{1}{2}\right)\right]\]

7. zadatak

Zadane su točke $A(1,-2,2),  B(1,4,0),  C(-4,1,1),  D(-5,-5,3).$

  1. Pokažite da zadane točke leže u jednoj ravnini.
  2. Odredite površinu četverokuta $ABCD.$
  3. Odredite neki vektor $\vec{v}$ koji je okomit na vektore $\overrightarrow{AB},$ $\overrightarrow{BC},$ $\overrightarrow{CD}$ i $\overrightarrow{DA}$. Obrazložite svoje rješenje.

Rješenje

In [45]:
A=vector((1,-2,2)); B=vector((1,4,0)); C=vector((-4,1,1)); D=vector((-5,-5,3))

Interaktivna 3D slika. Plavi vektor je neki vektor, točnije vektor $(0,1,3),$ koji zadovoljava uvjete iz c) dijela zadatka

In [46]:
xos=vector((0.5,0,0)).plot(radius=0.08,color='red',start=vector((4.5,0,0)))
yos=vector((0,0.5,0)).plot(radius=0.08,color='red',start=vector((0,4.5,0)))
zos=vector((0,0,0.5)).plot(radius=0.08,color='red',start=vector((0,0,4.5)))
crta1=line3d([(-5.5,0,0),(0,0,0)],radius=0.08,color='red')
crta1p=line3d([(0,0,0),(4.5,0,0)],radius=0.08,color='red')
crta2=line3d([(0,-5.5,0),(0,0,0)],radius=0.08,color='red')
crta2p=line3d([(0,0,0),(0,4.5,0)],radius=0.08,color='red')
crta3=line3d([(0,0,-2),(0,0,0)],radius=0.08,color='red')
crta3p=line3d([(0,0,0),(0,0,4.5)],radius=0.08,color='red')
ks=text3d("X",(5.2,0,0))+text3d("Y",(0,5.2,0))+text3d("Z",(0,0,5.2))+crta1+crta2+crta3+crta1p+crta2p+crta3p+xos+yos+zos
sf1=sphere((1,-2,2),size=0.1,color='blue')
sf2=sphere((1,4,0),size=0.1,color='blue')
sf3=sphere((-4,1,1),size=0.1,color='blue')
sf4=sphere((-5,-5,3),size=0.1,color='blue')
tA=text3d("A",(1,-2,2.3))
tB=text3d("B",(1.1,4.1,-0.3))
tC=text3d("C",(-4.1,1.1,1.3))
tD=text3d("D",(-5,-5,3.3))
poligon=polygon3d([(1,-2,2),(1,4,0),(-4,1,1),(-5,-5,3)],color='lime')
dijag=line3d([(1,-2,2),(-4,1,1)],radius=0.08,color='magenta')
vek=vector((0,1,3)).plot(radius=0.08,color='blue')
(sf1+sf2+sf3+sf4+poligon+dijag+vek+tA+tB+tC+tD+ks).show(viewer='threejs',online=True)

a) dio

Pomoću mješovitog produkta provjerimo da su vektori $\overrightarrow{AB},$ $\overrightarrow{AC}$ i $\overrightarrow{AD}$ komplanarni.

In [47]:
[B-A,C-A,D-A]
Out[47]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(0,\,6,\,-2\right), \left(-5,\,3,\,-1\right), \left(-6,\,-3,\,1\right)\right]\]
In [48]:
MP(B-A,C-A,D-A)
Out[48]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}0\]

Ili pronađemo jednadžbu ravnine kroz točke $A, B, C$ i provjerimo da li točka $D$ leži u toj ravnini.

In [49]:
rav=Ravnina3Tocke(A,B,C); rav
Out[49]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}y + 3 \, z - 4 = 0\]
In [50]:
rav.subs(x=-5,y=-5,z=3).test_relation()
Out[50]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\mathrm{True}\]

b) dio

Pazite, $ABCD$ nije paralelogram pa njegovu površinu računamo tako da ga podijelimo dijagonalom na dva trokuta. Treba paziti još na to da li je četverokut konveksni ili nekonveksni.

Kako su parametri $u$ i $v$ presjeka dijagonalnih pravaca $\Big(\overrightarrow{AC},A\Big)$ i $\Big(\overrightarrow{BD},B\Big)$ unutar intervala $\langle0,1\rangle$, zaključujemo da je četverokut $ABCD$ konveksni.

In [51]:
PresjekPravaca(C-A,A,D-B,B)
Out[51]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(-\frac{13}{7},\,-\frac{2}{7},\,\frac{10}{7}\right), u = \left(\frac{4}{7}\right), v = \left(\frac{10}{21}\right)\right]\]

$P_{ABCD}=P_{ABC}+P_{ACD}$

In [52]:
[VP(B-A,C-A),VP(C-A,D-A)]
Out[52]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(0,\,10,\,30\right), \left(0,\,11,\,33\right)\right]\]
In [53]:
pov=[PovrsinaTrokuta(A,B,C),PovrsinaTrokuta(A,C,D)]; pov
Out[53]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[5 \, \sqrt{10}, \frac{11}{2} \, \sqrt{10}\right]\]

površina četverokuta $ABCD$

In [54]:
sum(pov)
Out[54]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\frac{21}{2} \, \sqrt{10}\]

c) dio

Kako su točke $A, B, C, D$ komplanarne, za vektor $\vec{v}$ možemo uzeti normalu ravnine koja sadrži te točke.

In [55]:
VP(B-A,C-A)
Out[55]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(0,\,10,\,30\right)\]

8. zadatak

Zadana je ravnina $\pi\ldots x+y+8z-1=0$ i pravac $p\ldots \frac{x-2}{1}=\frac{y-2}{0}=\frac{z-4}{3}.$

  1. Odredite ortogonalnu projekciju $p'$ pravca $p$ na ravninu $\pi$.
  2. Odredite kut između $p$ i $p'$.
  3. Odredite simetrični pravac pravca $p$ s obzirom na ravninu $\pi$.

Rješenje

Interaktivna 3D slika. Prikazan je pravac $p$ (svijetlo ljubičasti), ortogonalna projekcija pravca $p$ na ravninu $\pi$ (svijetlo plavi), simetrični pravac pravca $p$ s obzirom na ravninu $\pi$ (zeleni pravac). Također, tu je i točka $A(2,2,4)$, njezina ortogonalna projekcija $A'$ na ravninu $\pi$ i njezina simetrična točka $A''$ s obzirom na ravninu $\pi$.

In [56]:
var('y t')
xos=vector((0.5,0,0)).plot(radius=0.08,color='red',start=vector((4.5,0,0)))
yos=vector((0,0.5,0)).plot(radius=0.08,color='red',start=vector((0,4.5,0)))
zos=vector((0,0,0.5)).plot(radius=0.08,color='red',start=vector((0,0,4.5)))
crta1=line3d([(-4,0,0),(0,0,0)],radius=0.08,color='red')
crta1p=line3d([(0,0,0),(4.5,0,0)],radius=0.08,color='red')
crta2=line3d([(0,-4,0),(0,0,0)],radius=0.08,color='red')
crta2p=line3d([(0,0,0),(0,4.5,0)],radius=0.08,color='red')
crta3=line3d([(0,0,-5),(0,0,0)],radius=0.08,color='red')
crta3p=line3d([(0,0,0),(0,0,4.5)],radius=0.08,color='red')
ks=text3d("X",(5.2,0,0))+text3d("Y",(0,5.2,0))+text3d("Z",(0,0,5.2))+crta1+crta2+crta3+crta1p+crta2p+crta3p+xos+yos+zos
sf1=sphere((3/5,2,-1/5),size=0.12,color='blue')
sf2=sphere((2,2,4),size=0.12,color='cyan')
sf3=sphere((31/33,31/33,-148/33),size=0.12,color='cyan')
sf4=sphere((97/66,97/66,-8/33),size=0.12,color='red')
tA=text3d("A",(1.7,2,4))
tAc=text3d("A'",(1.27,1.67,0))
tAcc=text3d("A''",(0.6,1,-4.49))
rav=plot3d(1/8*(1-x-y),(x,-3,4),(y,-3,4),color='yellow',opacity=1)
prav1=parametric_plot3d([t+2,2,3*t+4],(t,-3,-7/5),color='magenta',radius=0.05)
prav2=parametric_plot3d([t+2,2,3*t+4],(t,-7/5,0.3),color='magenta',radius=0.05)
sim1=parametric_plot3d([8*t+3/5,2-25*t,-101*t-1/5],(t,-0.05,0),color='lime',radius=0.05)
sim2=parametric_plot3d([8*t+3/5,2-25*t,-101*t-1/5],(t,0,0.05),color='lime',radius=0.05)
proj1=parametric_plot3d([41*t+3/5,2-25*t,-2*t-1/5],(t,-0.07,0),color='cyan',radius=0.05)
proj2=parametric_plot3d([41*t+3/5,2-25*t,-2*t-1/5],(t,0,0.07),color='cyan',radius=0.05)
cr1=line3d([(2,2,4),(97/66,97/66,-8/33)],radius=0.05,color='brown')
cr2=line3d([(97/66,97/66,-8/33),(31/33,31/33,-148/33)],radius=0.05,color='brown')
(rav+prav1+prav2+sim1+sim2+proj1+proj2+cr1+cr2+sf1+sf2+sf3+sf4+tA+tAc+tAcc+ks).show(viewer='threejs',online=True)

a) dio

In [57]:
ProjekcijaTockaRavnina((2,2,4),[1,1,8,-1])
Out[57]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(\frac{97}{66},\,\frac{97}{66},\,-\frac{8}{33}\right), t = \left(-\frac{35}{66}\right)\right]\]
In [58]:
ProjekcijaPravacRavnina((1,0,3),(2,2,4),[1,1,8,-1])
Out[58]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left\{\verb|tocka| : \left(\frac{3}{5},\,2,\,-\frac{1}{5}\right), \verb|vektor_smjera| : \left(41,\,-25,\,-2\right)\right\}\]

b) dio

In [59]:
KutPravaca((1,0,3),(41,-25,-2),izlaz=None,full=True)
Out[59]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\arccos\left(\frac{1}{660} \, \sqrt{2310} \sqrt{10}\right)\]
In [60]:
KutPravaca((1,0,3),(41,-25,-2))
Out[60]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\verb|76*|\phantom{\verb!x!}\verb|41'|\phantom{\verb!x!}\verb|10.54''|\]

c) dio

In [61]:
SimetricnaTockaRavnina((2,2,4),[1,1,8,-1])
Out[61]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(\frac{31}{33},\,\frac{31}{33},\,-\frac{148}{33}\right), t = \left(-\frac{35}{33}\right)\right]\]
In [62]:
SimetricniPravacRavnina((1,0,3),(2,2,4),[1,1,8,-1])
Out[62]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left\{\verb|tocka| : \left(\frac{3}{5},\,2,\,-\frac{1}{5}\right), \verb|vektor_smjera| : \left(8,\,-25,\,-101\right)\right\}\]

9. zadatak

Zadani su pravci $p_1\ldots\frac{x}{-2}=\frac{y-1}{2}=\frac{z-2}{1}$ i $p_2\ldots\frac{x-1}{2}=\frac{y-1}{0}=\frac{z-3}{-2}$.

  1. Pokažite da su $p_1$ i $p_2$ mimosmjerni pravci.
  2. Odredite zajedničku normalu pravaca $p_1$ i $p_2$.
  3. Odredite udaljenost pravaca $p_1$ i $p_2$.

Rješenje

Interaktivna 3D slika. Prikazani su pravci $p_1$ (plavi) i $p_2$ (svijetlo ljubičasti), te njihova zajednička normala (zeleni pravac) sa svojim nožištima (žute točke) na pravcima $p_1$ i $p_2.$

In [63]:
xos=vector((0.5,0,0)).plot(radius=0.08,color='red',start=vector((4.5,0,0)))
yos=vector((0,0.5,0)).plot(radius=0.08,color='red',start=vector((0,4.5,0)))
zos=vector((0,0,0.5)).plot(radius=0.08,color='red',start=vector((0,0,6.5)))
crta1=line3d([(-4,0,0),(0,0,0)],radius=0.08,color='red')
crta1p=line3d([(0,0,0),(4.5,0,0)],radius=0.08,color='red')
crta2=line3d([(0,-4,0),(0,0,0)],radius=0.08,color='red')
crta2p=line3d([(0,0,0),(0,4.5,0)],radius=0.08,color='red')
crta3=line3d([(0,0,-3),(0,0,0)],radius=0.08,color='red')
crta3p=line3d([(0,0,0),(0,0,6.5)],radius=0.08,color='red')
ks=text3d("X",(5.2,0,0))+text3d("Y",(0,5.2,0))+text3d("Z",(0,0,7.2))+crta1+crta2+crta3+crta1p+crta2p+crta3p+xos+yos+zos
sf1=sphere((4/9,5/9,16/9),size=0.15,color='yellow')
sf2=sphere((4/3,1,8/3),size=0.15,color='yellow')
prav1=parametric_plot3d([-2*t,2*t+1,t+2],(t,-2,2),color='magenta',radius=0.05)
prav2=parametric_plot3d([2*t+1,1,-2*t+3],(t,-2,2),color='blue',radius=0.05)
normala=parametric_plot3d([2*t+4/3,t+1,2*t+8/3],(t,-2,1.2),color='lime',radius=0.05)
(sf1+sf2+prav1+prav2+normala+ks).show(viewer='threejs',online=True)

a) dio

In [64]:
PresjekPravaca((-2,2,1),(0,1,2),(2,0,-2),(1,1,3))
Out[64]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\verb|Pravci|\phantom{\verb!x!}\verb|su|\phantom{\verb!x!}\verb|mimosmjerni|\]

b) dio

zajednička normala sa istaknutim vektorom smjera i nožišnim točkama na pravcima

In [65]:
ZajednickaNormala((-2,2,1),(0,1,2),(2,0,-2),(1,1,3))
Out[65]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left\{\verb|tocka1| : \left(\frac{4}{9},\,\frac{5}{9},\,\frac{16}{9}\right), \verb|tocka2| : \left(\frac{4}{3},\,1,\,\frac{8}{3}\right), \verb|vektor_smjera| : \left(-2,\,-1,\,-2\right), u : -\frac{2}{9}, v : \frac{1}{6}\right\}\]

zajednička normala kao presjek ravnina

In [66]:
ZajednickaNormala((-2,2,1),(0,1,2),(2,0,-2),(1,1,3),izlaz=2)
Out[66]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[-x - 2 \, y + 2 \, z - 2 = 0, -x + 4 \, y - z = 0\right]\]
In [67]:
ZajednickaNormala((-2,2,1),(0,1,2),(2,0,-2),(1,1,3),izlaz=3)
Out[67]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[-1, -2, 2, -2\right], \left[-1, 4, -1, 0\right]\right]\]

c) dio

In [68]:
UdaljenostPravaca((-2,2,1),(0,1,2),(2,0,-2),(1,1,3))
Out[68]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\frac{4}{3}\]

10. zadatak

Zadan je pravac $p\ldots\left\{\begin{array}{r}x+y+z-2=0\\ 2x-y+2z+1=0\end{array}\right.$ i ravnina $\Sigma\ldots x-y+z=0$.

  1. Napišite kanonski oblik jednadžbe pravca $p$.
  2. Odredite ravninu $\pi$ koja sadrži pravac $p$ i okomita je na ravninu $\Sigma$.

Rješenje

Interaktivna 3D slika. Žuta ravnina je zadana ravnina $\Sigma$. Svijetlo ljubičasti pravac je pravac $p$, a svijetlo plava ravnina je tražena ravnina u b) dijelu zadatka. Uočite da su ravnina $\Sigma$ i pravac $p$ paralelni.

In [69]:
xos=vector((0.5,0,0)).plot(radius=0.08,color='red',start=vector((4.5,0,0)))
yos=vector((0,0.5,0)).plot(radius=0.08,color='red',start=vector((0,4.5,0)))
zos=vector((0,0,0.5)).plot(radius=0.08,color='red',start=vector((0,0,6.5)))
crta1=line3d([(-4,0,0),(0,0,0)],radius=0.08,color='red')
crta1p=line3d([(0,0,0),(4.5,0,0)],radius=0.08,color='red')
crta2=line3d([(0,-4,0),(0,0,0)],radius=0.08,color='red')
crta2p=line3d([(0,0,0),(0,4.5,0)],radius=0.08,color='red')
crta3=line3d([(0,0,-4.5),(0,0,0)],radius=0.08,color='red')
crta3p=line3d([(0,0,0),(0,0,6.5)],radius=0.08,color='red')
ks=text3d("X",(5.2,0,0))+text3d("Y",(0,5.2,0))+text3d("Z",(0,0,7.2))+crta1+crta2+crta3+crta1p+crta2p+crta3p+xos+yos+zos
prav1=parametric_plot3d([t,5/3,-t+1/3],(t,-3,3),color='magenta',radius=0.05)
rav=plot3d(-x+y,(x,-3,3),(y,-2,4),color='yellow')
rav2=parametric_plot3d([11/3-2*u-1/5*v,u-2/5*v,v],(u,-0.5,3.5),(v,-3,5),color='cyan')
(prav1+rav+rav2+ks).show(viewer='threejs',online=True)

a) dio

In [70]:
PresjekRavnina([1,1,1,-2],[2,-1,2,1])
Out[70]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left\{\verb|tocka| : \left(0,\,\frac{5}{3},\,\frac{1}{3}\right), \verb|vektor_smjera| : \left(1,\,0,\,-1\right)\right\}\]

ako želimo istaknutu točku na pravcu za koju je npr. $z=0$

In [71]:
PresjekRavnina([1,1,1,-2],[2,-1,2,1],tocka={3:0})
Out[71]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left\{\verb|tocka| : \left(\frac{1}{3},\,\frac{5}{3},\,0\right), \verb|vektor_smjera| : \left(1,\,0,\,-1\right)\right\}\]

ako želimo istaknutu točku na pravcu za koju je npr. $y=-7$. U ovom slučaju to ne prolazi jer na zadanom pravcu nema točke za koju bi bilo $y=-7$.

In [72]:
PresjekRavnina([1,1,1,-2],[2,-1,2,1],tocka={2:-7})
Nije uspjelo sa zadanom pocetnom vrijednosti varijable.
Out[72]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left\{\verb|tocka| : \left(0,\,\frac{5}{3},\,\frac{1}{3}\right), \verb|vektor_smjera| : \left(1,\,0,\,-1\right)\right\}\]

ako želimo istaknutu točku na pravcu za koju je npr. $x=4$

In [73]:
PresjekRavnina([1,1,1,-2],[2,-1,2,1],tocka={1:4})
Out[73]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left\{\verb|tocka| : \left(4,\,\frac{5}{3},\,-\frac{11}{3}\right), \verb|vektor_smjera| : \left(1,\,0,\,-1\right)\right\}\]

b) dio

$\vec{n}_{\pi}=\vec{s}_p\times\vec{n}_{\Sigma}$

In [74]:
nor=VP((1,0,-1),(1,-1,1)); nor
Out[74]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(-1,\,-2,\,-1\right)\]
In [75]:
RavninaNormala((1/3,5/3,0),nor)
Out[75]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}-3 \, x - 6 \, y - 3 \, z + 11 = 0\]
In [ ]: