{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 "" -1 257 "" 1 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {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 "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 "Maple Plot" -1 13 1 {CSTYLE "" -1 -1 "Time s" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 1 0 0 0 0 1 0 1 0 2 2 0 1 } {PSTYLE "Title" -1 18 1 {CSTYLE "" -1 -1 "Times" 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 257 16 "The Dodecahedron" }}} {SECT 1 {PARA 3 "" 0 "" {TEXT -1 7 "Colours" }}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 425 "red := COLOR(RGB,1,0,0):\ngreen := COLOR (RGB,0,1,0):\nblue := COLOR(RGB,0,0,1):\nyellow := COLOR(RGB,1 ., 1., 0.):\norange := COLOR(RGB,1., 0.5, 0.): \nolive := COLOR (RGB,0.230003, 0.370006, 0.170003):\nturquoise := COLOR(RGB,0.250999, \+ 0.878399, 0.815699): \nmaroon := COLOR(RGB,0.690207, 0.188192, 0.37 6507):\ndarkgreen := COLOR(RGB,0., 0.392193, 0.):\nlightblue := COLOR( RGB,0.678396, 0.847102, 0.902005):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 154 "collist := [\n red, \n green, \n blue, \+ \n yellow, \n orange, \n olive, \n turquoise, \n m aroon, \n darkgreen, \n lightblue\n ]:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "col := (n) -> collist[modp(n,10)+1]:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 8 "Vertices" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "numVertice s := 20:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "tau := evalf((1 + sqrt(5))/2):\nrho := evalf((tau + 1)/2):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 145 "for i from 0 to 1 do\n for j from 0 to 1 do\n fo r k from 0 to 1 do \n v(i+2*j+4*k) := [(i - 1/2)*tau,(j - 1/2)*tau,( k - 1/2)*tau]:\n od:\n od:\nod:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 323 "v( 8) := [ 0,-1/2,-rho]:\nv( 9) := [ 0, 1/2,-rho ]:\nv(10) := [-1/2,-rho, 0]:\nv(11) := [ 1/2,-rho, 0]:\nv(12) := [ rho, 0,-1/2]:\nv(13) := [ rho, 0, 1/2]:\nv(14) := [-rho, 0,-1/2 ]:\nv(15) := [-rho, 0, 1/2]:\nv(16) := [-1/2, rho, 0]:\nv(17) := [ 1/2, rho, 0]:\nv(18) := [ 0,-1/2, rho]:\nv(19) := [ 0, 1/2, rho ]:" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 32 "Edges, faces and inscribe d cubes" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 289 "Edges := [\n [ 0 , 8], [ 0,10], [ 0,14], [ 1, 8], [ 1,11], [ 1,12], \n [ 2, 9], [ 2,14] , [ 2,16], [ 3, 9], [ 3,12], [ 3,17],\n [ 4,10], [ 4,15], [ 4,18], [ 5 ,11], [ 5,13], [ 5,18],\n [ 6,15], [ 6,16], [ 6,19], [ 7,13], [ 7,17], [ 7,19], \n [ 8, 9], [10,11], [12,13], [14,15], [16,17], [18,19]\n]: " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 240 "Faces := [\n [ 0, 8, 1 ,11,10],\n [ 0, 8, 9, 2,14],\n [ 0,10, 4,15,14],\n [ 1, 8, 9, 3,12],\n [ 1,11, 5,13,12],\n [ 2, 9, 3,17,16],\n [ 2,14,15, 6,16],\n [ 3,12,13 , 7,17],\n [ 4,10,11, 5,18],\n [ 4,15, 6,19,18],\n [ 5,13, 7,19,18],\n [ 6,16,17, 7,19]\n]:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 181 "C ubes := [[ 0, 1, 2, 3, 4, 5, 6, 7],\n [ 0, 9,11,12,15,16,18, 7 ],\n [ 1, 9,10,14,13,17,18, 6],\n [ 2, 8,15,10,17,12,1 9, 5],\n [ 3, 8,13,11,16,14,19, 4]]:" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 16 "Useful functions" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "Polify := \n proc(verts::list(integer))\n POLYGONS(m ap(v,verts));\n end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "Lin ify := \n proc(verts::list(integer))\n CURVES(map(v,verts));\n end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 162 "DualVertex := \n proc(ve rts::list(integer))\n local w;\n w := `+`(op(map((i) -> vector(v(i)) ,verts)));\n w := evalf(evalm(w/nops(verts)));\n convert(w,list);\n \+ end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 399 "DualFace :=\n proc (i::integer) \n local unord,ord,currface;\n unord := select(has,Face s,i);\n ord := [unord[1]];\n unord := unord[2..-1];\n currface := o rd[1];\n while unord <> [] do\n currface := \n select((f) -> (no ps(intersection(f,currface)) = 2),\n unord)[1];\n ord := [ op(ord),currface];\n unord := remove((f) -> (f = currface),unord);\n od;\n POLYGONS(map(DualVertex,ord));\n end:" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 316 "CubeFrame :=\n proc(verts::list(integer))\n \+ local w;\n w := (j) -> v(verts[j+1]);\n CURVES(\n [w[0],w[1]],\n [w[1],w[3]],\n [w[3],w[2]],\n [w[2],w[0]],\n [w[0],w[ 4]],\n [w[1],w[5]],\n [w[2],w[6]],\n [w[3],w[7]],\n [w [4],w[5]],\n [w[5],w[7]],\n [w[7],w[6]],\n [w[6],w[4]]\n \+ );\n end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 340 "CubeSurface : = \n proc(verts::list(integer))\n local w;\n w := (j) -> v(verts[j+1 ]);\n POLYGONS([w(0),w(1),w(3),w(2)],red),\n POLYGONS([w(0),w(1),w (5),w(4)],green),\n POLYGONS([w(0),w(2),w(6),w(4)],blue),\n POLYGO NS([w(1),w(3),w(7),w(5)],yellow),\n POLYGONS([w(2),w(3),w(7),w(6)],o range),\n POLYGONS([w(4),w(5),w(7),w(6)],maroon)\n end:" }}}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 8 "Pictures" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "dodec := PLOT3D(op(map(Polify,Faces))): print(dodec); " }}{PARA 13 "" 1 "" {GLPLOT3D 352 352 352 {PLOTDATA 3 "6.-%)POLYGONSG 6#7'7%$!+S*p,4)!#5F(F(7%\"\"!#!\"\"\"\"#$!+%*p,48!\"*7%$\"+S*p,4)F*F(F (7%#\"\"\"F/F0F,7%F-F0F,-F$6#7'F'F+7%F,F7F07%F(F4F(7%F0F,F--F$6#7'F'F9 7%F(F(F47%F0F,F7F?-F$6#7'F3F+F=7%F4F4F(7%$\"+%*p,48F2F,F--F$6#7'F3F67% F4F(F47%FJF,F7FI-F$6#7'F>F=FH7%F7FJF,7%F-FJF,-F$6#7'F>F?FD7%F(F4F4FU-F $6#7'FHFIFP7%F4F4F4FT-F$6#7'FCF9F6FO7%F,F-FJ-F$6#7'FCFDFY7%F,F7FJF[o-F $6#7'FOFPFgnF_oF[o-F$6#7'FYFUFTFgnF_o" 1 2 0 1 10 0 2 1 1 1 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2" "Curve 3" "Curve \+ 4" "Curve 5" "Curve 6" "Curve 7" "Curve 8" "Curve 9" "Curve 10" "Curve 11" "Curve 12" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "dodecdua l := \n PLOT3D(seq(DualFace(i),i=0..19)): print(dodecdual);" }}{PARA 13 "" 1 "" {GLPLOT3D 352 352 352 {PLOTDATA 3 "66-%)POLYGONSG6#7%7%$\" \"!F)$!+_f8s%*!#5$!+k>5aeF,7%F-F(F*7%F*F-F(-F$6#7%F'7%$\"+k>5aeF,F(F*7 %$\"+_f8s%*F,F-F(-F$6#7%F/7%F(F8F-7%F*F5F(-F$6#7%F4F=7%F8F5F(-F$6#7%F0 7%F(F*F57%F-F(F8-F$6#7%F7FF7%F5F(F8-F$6#7%F>FG7%F(F8F5-F$6#7%FBFKFO-F$ 6#7%F'F/F4-F$6#7%F/F4F=-F$6#7%F'F0FF-F$6#7%F'F7FF-F$6#7%F4F7FB-F$6#7%F 7FBFK-F$6#7%F/F0F>-F$6#7%F0F>FG-F$6#7%F=F>FO-F$6#7%F=FBFO-F$6#7%FFFGFK -F$6#7%FGFKFO" 1 2 0 1 10 0 2 1 1 1 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2" "Curve 3" "Curve 4" "Curve 5" "Curve 6" "Curve 7 " "Curve 8" "Curve 9" "Curve 10" "Curve 11" "Curve 12" "Curve 13" "Cur ve 14" "Curve 15" "Curve 16" "Curve 17" "Curve 18" "Curve 19" "Curve 2 0" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 87 "incube := \n PLOT3D( \n CubeSurface(Cubes[1]),\n op(map(Linify,Edges))\n ): print(incube) ;" }}{PARA 13 "" 1 "" {GLPLOT3D 352 352 352 {PLOTDATA 3 "6F-%)POLYGONS G6$7&7%$!+S*p,4)!#5F(F(7%$\"+S*p,4)F*F(F(7%F,F,F(7%F(F,F(-%&COLORG6&%$ RGBG\"\"\"\"\"!F5-F$6$7&F'F+7%F,F(F,7%F(F(F,-F16&F3F5F4F5-F$6$7&F'F/7% F(F,F,F:-F16&F3F5F5F4-F$6$7&F+F.7%F,F,F,F9-F16&F3$F4F5FI$F5F5-F$6$7&F/ F.FFF@-F16&F3FI$\"\"&!\"\"FJ-F$6$7&F:F9FFF@-F16&F3$\"'2-p!\"'$\"'#>)=F Z$\"'2lPFZ-%'CURVESG6#7$F'7%F5#FR\"\"#$!+%*p,48!\"*-Fjn6#7$F'7%F^oF`oF 5-Fjn6#7$F'7%F`oF5F^o-Fjn6#7$F+F]o-Fjn6#7$F+7%#F4F_oF`oF5-Fjn6#7$F+7%$ \"+%*p,48FboF5F^o-Fjn6#7$F/7%F5FbpF`o-Fjn6#7$F/Fjo-Fjn6#7$F/7%F^oFgpF5 -Fjn6#7$F.F\\q-Fjn6#7$F.Ffp-Fjn6#7$F.7%FbpFgpF5-Fjn6#7$F:Ffo-Fjn6#7$F: 7%F`oF5Fbp-Fjn6#7$F:7%F5F^oFgp-Fjn6#7$F9Fap-Fjn6#7$F97%FgpF5Fbp-Fjn6#7 $F9Fhr-Fjn6#7$F@Fdr-Fjn6#7$F@Fcq-Fjn6#7$F@7%F5FbpFgp-Fjn6#7$FFF_s-Fjn6 #7$FFF]r-Fjn6#7$FFF\\t-Fjn6#7$F]oF\\q-Fjn6#7$FfoFap-Fjn6#7$FfpF_s-Fjn6 #7$FjoFdr-Fjn6#7$FcqF]r-Fjn6#7$FhrF\\t" 1 2 0 1 10 0 2 1 1 1 2 1.000000 91.000000 131.000000 0 0 "Curve 1" "Curve 2" "Curve 3" "Curve 4" "Curve 5" "Curve 6" "Curve 7" "Curve 8" "Curve 9" "Curve 10" "Curv e 11" "Curve 12" "Curve 13" "Curve 14" "Curve 15" "Curve 16" "Curve 17 " "Curve 18" "Curve 19" "Curve 20" "Curve 21" "Curve 22" "Curve 23" "C urve 24" "Curve 25" "Curve 26" "Curve 27" "Curve 28" "Curve 29" "Curve 30" "Curve 31" "Curve 32" "Curve 33" "Curve 34" "Curve 35" "Curve 36 " }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}}{MARK "4" 0 } {VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }