verzija: SageMath 9.4
%display latex
load('MMZI.sage')
Zadane su točke $A(2,3,-1),$ $B(4,4,2)$ i $C(1,8,-5).$
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.
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)
$\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$
D=C+A-B; D
VP(B-A,D-A)
površina paralelograma $ABCD$
pov=VP(B-A,D-A).norm(); pov
duljina visine paralelograma $ABCD$ na stranicu $\overline{AB}$
pov/dTocka(A,B)
VP(B-A,D-A)
Trokut $ABC$ je zadan svojim vrhovima $A(-1,2,3), B(2,1,2), C(0,3,0).$
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.
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)
KutVektora(B-A,C-A)
KutVektora(B-A,C-A,izlaz=None)
pov=PovrsinaTrokuta(A,B,C); pov
2*pov/dTocka(A,C)
Vektori nisu komplanarni jer je njihov mješoviti produkt različit od nule.
MP(B-A,C-A,(3,-1,0))
Zadana je dužina $\overline{AB}$ s koordinatama svojih krajeva $A(3,4,1)$ i $B(-5,2,-3)$.
A=(3,4,1); B=(-5,2,-3)
Stvarna 3D interaktivna slika
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)
[Omjer(A,B,-1/3),Omjer(A,B,-1),Omjer(A,B,-3)]
Omjer(A,B,1/5)
Trokut $ABC$ je zadan s $A(1,1,1), B(1,-1,4), C(-3,5,6).$
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.
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)
Trokut $ABC$ nije pravokutan jer ne zadovoljava Pitagorin poučak.
duljine=[dTocka(A,B),dTocka(A,C),dTocka(B,C)]; duljine
pitagora=duljine[1]^2==(duljine[0]^2+duljine[2]^2)
pitagora.test_relation()
KutVektora(A-B,C-B,izlaz=None)
KutVektora(A-B,C-B)
V=abs(MP(B-A,C-B,(-6,0,5))); V
VP(B-A,C-B)
baza=VP(B-A,C-B).norm(); baza
duljina visine
V/baza
Zadani je pravac $p\ldots\frac{x-2}{1}=\frac{y+4}{-2}=\frac{z+1}{1}$ i točka $A(3,4,2)$.
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$.
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)
$n\ldots\dfrac{x-3}{3}=\dfrac{y-4}{4}=\dfrac{z-2}{5}$
ProjekcijaTockaPravac(A,(1,-2,1),(2,-4,-1))
vektor smjera normale
NormalaTockaPravac(A,(1,-2,1),(2,-4,-1))
dTockaPravac(A,(1,-2,1),(2,-4,-1),full=True)
var('t')
T=vector((t+2,-2*t-4,t-1))
ud=dTocka(A,T,full=True); ud
rj=solve(ud==10*sqrt(2),t); rj
[T.subs(rj[0]),T.subs(rj[1])]
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)$.
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|$.
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)
[(B-A).norm(),(C-A).norm()]
Vektori $\overrightarrow{AB}$ i $\overrightarrow{AC}$ su jednakih duljina pa je vektor smjera simetrale njihovog kuta jednak
sim=(B-A)+(C-A); sim
Ortogonalna projekcija točke $B$ na simetralu kuta između stranica $\overline{AB}$ i $\overline{AC}$
ProjekcijaTockaPravac(B,sim,A)
Zadane su točke $A(1,-2,2), B(1,4,0), C(-4,1,1), D(-5,-5,3).$
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
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)
Pomoću mješovitog produkta provjerimo da su vektori $\overrightarrow{AB},$ $\overrightarrow{AC}$ i $\overrightarrow{AD}$ komplanarni.
[B-A,C-A,D-A]
MP(B-A,C-A,D-A)
Ili pronađemo jednadžbu ravnine kroz točke $A, B, C$ i provjerimo da li točka $D$ leži u toj ravnini.
rav=Ravnina3Tocke(A,B,C); rav
rav.subs(x=-5,y=-5,z=3).test_relation()
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.
PresjekPravaca(C-A,A,D-B,B)
$P_{ABCD}=P_{ABC}+P_{ACD}$
[VP(B-A,C-A),VP(C-A,D-A)]
pov=[PovrsinaTrokuta(A,B,C),PovrsinaTrokuta(A,C,D)]; pov
površina četverokuta $ABCD$
sum(pov)
Kako su točke $A, B, C, D$ komplanarne, za vektor $\vec{v}$ možemo uzeti normalu ravnine koja sadrži te točke.
VP(B-A,C-A)
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}.$
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$.
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)
ProjekcijaTockaRavnina((2,2,4),[1,1,8,-1])
ProjekcijaPravacRavnina((1,0,3),(2,2,4),[1,1,8,-1])
KutPravaca((1,0,3),(41,-25,-2),izlaz=None,full=True)
KutPravaca((1,0,3),(41,-25,-2))
SimetricnaTockaRavnina((2,2,4),[1,1,8,-1])
SimetricniPravacRavnina((1,0,3),(2,2,4),[1,1,8,-1])
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}$.
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.$
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)
PresjekPravaca((-2,2,1),(0,1,2),(2,0,-2),(1,1,3))
zajednička normala sa istaknutim vektorom smjera i nožišnim točkama na pravcima
ZajednickaNormala((-2,2,1),(0,1,2),(2,0,-2),(1,1,3))
zajednička normala kao presjek ravnina
ZajednickaNormala((-2,2,1),(0,1,2),(2,0,-2),(1,1,3),izlaz=2)
ZajednickaNormala((-2,2,1),(0,1,2),(2,0,-2),(1,1,3),izlaz=3)
UdaljenostPravaca((-2,2,1),(0,1,2),(2,0,-2),(1,1,3))
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$.
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.
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)
PresjekRavnina([1,1,1,-2],[2,-1,2,1])
ako želimo istaknutu točku na pravcu za koju je npr. $z=0$
PresjekRavnina([1,1,1,-2],[2,-1,2,1],tocka={3:0})
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$.
PresjekRavnina([1,1,1,-2],[2,-1,2,1],tocka={2:-7})
ako želimo istaknutu točku na pravcu za koju je npr. $x=4$
PresjekRavnina([1,1,1,-2],[2,-1,2,1],tocka={1:4})
$\vec{n}_{\pi}=\vec{s}_p\times\vec{n}_{\Sigma}$
nor=VP((1,0,-1),(1,-1,1)); nor
RavninaNormala((1/3,5/3,0),nor)