{VERSION 5 0 "IBM INTEL NT" "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 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 1 } {PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Text Output" -1 2 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 0 0 0 0 0 1 3 0 3 0 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 1" -1 3 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 8 4 1 0 1 0 2 2 0 1 }{PSTYLE "Warning" 2 7 1 {CSTYLE "" -1 -1 "" 0 1 0 0 255 1 0 0 0 0 0 0 1 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Maple Output " 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 "Title" -1 18 1 {CSTYLE "" -1 -1 "T imes" 1 18 0 0 0 1 2 1 1 2 2 2 1 1 1 1 }3 1 0 0 12 12 1 0 1 0 2 2 19 1 }} {SECT 0 {EXCHG {PARA 18 "" 0 "" {TEXT -1 11 "Sph\351ric\364nes" }}} {SECT 0 {PARA 3 "" 0 "" {TEXT -1 34 " proc\351dures vectorielles g\351 n\351rales" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 609 "# produit sca laire\nps:=proc(U,V) \nlocal u,v; u:=expand(U): v:=expand(V):\n \+ add(u[i]*v[i],i=1..nops(u)):\nend:\nVnorm:= proc(U) expand(U/sqrt(ps( U,U))): end:\nVlength:= proc(U) sqrt(ps(U,U)): end:\n# produit vecto riel\npv:=proc(u,v)\n local U,V; U:=expand(u): V:=expand(v):\n[U[2]* V[3]-U[3]*V[2],U[3]*V[1]-U[1]*V[3],U[1]*V[2]-U[2]*V[1]]:\nend proc:\n# ----------- rotation d'axe (axe) d'angle t, appliqu\351 \340 point -- --------------------\nrot:=proc(point,axe,t) # rotation\n local axe1: axe1:=Vnorm(axe):\n expand(expand(cos(t)*point) +expand(sin(t)*pv(ax e1,point)) +expand((1-cos(t))*ps(axe1,point)*axe1))\nend:\n" }}}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 21 " Trac\351 de sph\351ric\364nes" }}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 1394 "with(plots): \nptseg := proc (A, B, t) expand(A+t *(B-A)) end proc:\nconeseg := proc (A, B, axe, deb) local pt, i: \n \+ \011pt := rot(ptseg(A, B, t), axe, ro, deb): \n \011plot3d(pt, t = 0 .. 1, ro = deb .. deb+Pi, grid = [2, 100]): \nend proc: \ntubep arallele := proc (A, axe, r) \n \011tubeplot(rot(A, axe, tt), tt = 0 .. Pi, radius = r, grid = [100, 10], style = patchnogrid):\nend pro c: \nbords := proc (L, axe, r) seq(tubeparallele(L[i], axe, r), i = 1 \+ .. nops(L)) end proc: \nlathe := proc (L, axe, deb) [seq(coneseg(L[i], L[i+1], axe, deb), i = 1 .. nops(L)-1)] end proc: \nptpol := proc (n, k, depart) [cos(depart+2*Pi*k/n), sin(depart+2*Pi*k/n), 0] end proc: \n#----- pointu prend les valeurs true/false true : axe par 2 sommets ------\ndemipol := proc (n, pointu) local depart: \n \011if type(n , even) then \n\011\011 if pointu then \n\011\011 \+ \011depart := -(1/2)*Pi: \n\011\011\011 [seq([cos(dep art+2*Pi*i/n), sin(depart+2*Pi*i/n), 0], i = 0 .. (1/2)*n)]: \n\011 \+ \011else \n\011\011 \011depart := -(1/2)*Pi-Pi/n: \n\011\011 \011[[0, sin(depart), 0], seq([cos(depart+2* Pi*i/n), sin(depart+2*Pi*i/n), 0], i = 1 .. (1/2)*n), [0, sin(depart+P i*n/n), 0]]: \n\011\011 end if \n\011 else \n\011\011 \+ depart := -(1/2)*Pi: \n\011\011 [seq([cos(depart+2*Pi*i /n), sin(depart+2*Pi*i/n), 0], i = 0 .. (1/2)*n-1/2), [0, sin(depart+2 *Pi*((1/2)*n-1/2)/n), 0]] \n \011end if \nend proc:\n" }}{PARA 7 " " 1 "" {TEXT -1 50 "Warning, the name changecoords has been redefined \n" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 572 "n := 16: nrot := 4: r := 0.2e-1: cas := false: \nL := demipol(n, cas): evalf(L, 3): \nL1 \+ := map(proc (u) options operator, arrow: rot(u, [0, 0, 1], 2*nrot*Pi/n ) end proc, demipol(n, cas)): \nS1 := lathe(L, [0, 1, 0], 0): S2 := la the(L1, L1[1], 0): \n \n\n \ngr := displ ay([ display(S1, color = cyan), \n\011\011\011\011display(bords(L, [0, 1, 0], r), color = green), \n\011\011\011\011display(bords(L1, L1[1], r), color = yellow), \n\011\011\011\011display(S2, color = red) \n \011\011\011\011],style = patchnogrid, scaling = constrained, axes = n one, orientation = [30, 70], lightmodel = light3): \ngr;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 33 " Recherche d e bandes de roulement" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1454 " \+ \ngr_bande := proc (i0, n,cas, nrot, p) \n local L1, L2, S1, \+ S2, bS1, bS2, b1, b2, i; global liste1, liste2; \n b1 := pro c (y, n) local x,u ; \n x := `mod`(y, n); if x < \+ (1/2)*n then u:= x: else if type(n,even) and not(cas ) then u:=`mod` (n-x,n): else u:= `mod`(n-1-x,n): end if: end if :\n \+ u+1;\n end proc; \n b2 := proc (x, \+ n) if x < 0 then `mod`(n+x,n) else `mod`(x,n): end if end proc; \n \+ L1 := demipol(n, cas); S1 := lathe(L1, [0, 1, 0], 0); \n \+ L2 := map(proc (u) rot(u, [0, 0, 1], 2*nrot*Pi/n) end proc, L1): \+ S2 := lathe(L2, L2[1], 0); \n liste1 := b1(i0,n); \+ liste2 := b1(b2(i0-nrot, n), n); \n bS1 := S1[b1(i0,n)]; b S2 := S2[b1(b2(i0-nrot, n), n)]; \n for i to p while `mod`(2 *i*nrot, n) <> 0 do \n liste1 := liste1, b1(i0+2*i* nrot, n); liste2 := liste2, b1(b2(i0+2*i*nrot-nrot, n), n); \n \+ bS1 := bS1, S1[b1(i0+2*i*nrot, n)]; bS2 := bS2, S2[b 1(b2(i0+2*i*nrot-nrot, n), n)] :\n end do; \n#printf(\"liste 1 = %a ; liste2= %a\\n\", [liste1], [liste2]); \n display([d isplay([bS1], color = blue), display([bS2], color = green) \n \+ ], axes = none, scaling = constrained, orientation = [80, 16 0]):\nend proc:\n\nn :=32; cas := true; nrot :=4; p := n ; i0 :=5;\n #n :=21; cas := true; nrot :=7; p := n ; i0 :=3;\ngr_bande(i0, n,cas, \+ nrot, p);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"nG\"#K" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#>%$casG%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#>%%nrotG\"\"%" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"pG\"#K" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%#i0G\"\"&" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{MARK "7 1 2 0" 0 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }