{VERSION 5 0 "IBM INTEL LINUX" "5.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Maple O utput" 0 11 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 3 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Maple Plot" 0 13 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 84 "#Csavarvonal ivenek \+ kozelitese harmadfoku Bezier gorbevel\nwith(linalg):\nwith(plots):" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 195 "r:=t->vector(3,[cos(t),sin (t),b*t]):\nerin:=t->vector(3,[-sin(t),cos(t),b]):\nr(t); erin(t);\nb: =6:\ncsav:=spacecurve([cos(t),sin(t),6*t],t=0..Pi/2,numpoints=30,color =red):\ndisplay(csav,axes=NORMAL);" }}{PARA 11 "" 1 "" {TEXT -1 0 "" } }{PARA 11 "" 1 "" {TEXT -1 0 "" }}{PARA 13 "" 1 "" {TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 222 "#az elso es utolso kontroll pont a gorbeiv ket vegpontja\n#keressuk a ket belso kontrollpontot, ez eket s fuggvenyekent irjuk fel\nr0:=r(0): r3:=r(Pi/2):\nr1:=s->evalm(r 0+s*erin(0)):\nr2:=s->evalm(r3-s*erin(Pi/2)):\nr1(s); r2(s);" }}{PARA 11 "" 1 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 131 "#a Bernstein bazisfuggvenyek matrix alakban\nuvek:=vector(4,[1,u,u^2, u^3]):\nbmat:=matrix(4,4,[1,0,0,0,-3,3,0,0,3,-6,3,0,-1,3,-3,1]);" }} {PARA 11 "" 1 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 146 "#egy tetszoleges s ertekkel (pl. 3) megrajzoljuk az rp0,rp1,rp2 ,rp3 \n#kontrollpontokkal definialt Bezier gorbet\nrp0:=r0:\nrp1:=eval m(r0+3*erin(0)):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 461 "rp2:=evalm(r3- 3*erin(Pi/2)):\nrp3:=r3:\npx:=vector(4,[rp0[1],rp1[1],rp2[1],rp3[1]]): \npy:=vector(4,[rp0[2],rp1[2],rp2[2],rp3[2]]):\npz:=vector(4,[rp0[3],r p1[3],rp2[3],rp3[3]]):\ngorbx:=u->evalm(uvek &* bmat &* px):\ngorby:=u ->evalm(uvek &* bmat &* py):\ngorbz:=u->evalm(uvek &* bmat &* pz):\ngo rbx(u); gorby(u); gorbz(u);\ngorb3:=spacecurve([gorbx(u),gorby(u),gorb z(u)], u=0..1, numpoints=30,color=blue) :\ndisplay(\{csav,gorb3\},axes=NORMAL);" }}{PARA 13 "" 1 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 482 "#ez a gorbe nem has onlit a csavarvonal ivre\n#s mely ertekere lesz a csavarvonal es a Bez ier gorbe\n#PI/4 parameternel szamolt pontjainak tavolsaga minimalis? \nu:=1/2:\npolx:=vector(4,[r0[1],r1(s)[1],r2(s)[1],r3[1]]);\npoly:=vec tor(4,[r0[2],r1(s)[2],r2(s)[2],r3[2]]);\npolz:=vector(4,[r0[3],r1(s)[3 ],r2(s)[3],r3[3]]);\nbgorbx:=s->evalm(uvek &* bmat &* polx):\nbgorby:= s->evalm(uvek &* bmat &* poly):\nbgorbz:=s->evalm(uvek &* bmat &* polz ):\nbezier:=vector(3,[bgorbx(s),bgorby(s),bgorbz(s)]);" }}{PARA 11 "" 1 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "kulvek :=evalm(r(Pi/4)-bezier);\ncelfv:=s->innerprod(kulvek,kulvek):\ncelfv(s );" }}{PARA 11 "" 1 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "kulvek*(1/2*sqrt(2)-.7071067809)^2;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 167 "#ez a tavolsag negyzete,\n#ennek a fuggv enynek keressuk a minimum helyet\nder:=s->diff(celfv(s),s):\nder(s);\n solve(der(s)=0,s);\nmegoldas:=evalf(%);\nder2:=diff(der(s),s);\n" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "#a kiszamolt s ertekkel rajz oljuk fel a gorbet\ns:=megoldas;\nunassign('u');" }}{PARA 11 "" 1 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "#a kontrolp ontok: \nrp0:=r0:\nrp1:=evalm(r0+s*erin(0)):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 477 "rp2:=evalm(r3-s*erin(Pi/2)):\nrp3:=r3:\npx:=vector(4 ,[rp0[1],rp1[1],rp2[1],rp3[1]]):\npy:=vector(4,[rp0[2],rp1[2],rp2[2],r p3[2]]):\npz:=vector(4,[rp0[3],rp1[3],rp2[3],rp3[3]]):\n#a Bezier gorb eiv koordinatafuggvenyei:\ngorbx:=u->evalm(uvek &* bmat &* px):\ngorby :=u->evalm(uvek &* bmat &* py):\ngorbz:=u->evalm(uvek &* bmat &* pz): \neredmeny:=spacecurve([gorbx(u),gorby(u),gorbz(u)], u=0..1, \+ numpoints=30,color=blue):\ndisplay(\{csav,eredme ny\},axes=NORMAL);" }}{PARA 13 "" 1 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 122 "#a kontrollpoligonnal egyutt\nframe:=pol ygonplot3d([rp0,rp1,rp2,rp3], color=yellow):\ndisplay(\{frame,eredmeny \},axes=NORMAL);" }}{PARA 13 "" 1 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 0 "" }}}}{MARK "3 0 0" 13 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }