{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 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 0 "" 0 "" {TEXT -1 18 "Von Koch snowflake" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 12 "with(plots):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 105 "'d' = draw a stright line in the current direction\n'r' \+ = turn right 60 degrees\n'l' = turn left 60 degrees" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "lst1 := [d]; # initial segment" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 79 "Next each stage consists of replac ing 'd' with 'dldrrdld' in the previous stage" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "lst2 := subs(d=('d','l','d','r','r','d','l','d') ,lst1);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "lst3 := subs(d=( 'd','l','d','r','r','d','l','d'),lst2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "lst4 := subs(d=('d','l','d','r','r','d','l','d'),lst3 );" }{TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "lst5 : = subs(d=('d','l','d','r','r','d','l','d'),lst4);" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 139 "p computes the vertices of a polygonal line start ing at (p0x,p0y) with sides of lenght ra and \nfollowing the sequence \+ of movements in 'lst'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 461 "p := proc(ra, p0x, p0y, lst)\nlocal a, n, li, px, py, ang;\n ang := \+ 0;\n px := p0x;\n py := p0y;\n li := [[px, py]];\n for n t o 1/2*length(lst) - 3/2 do\n a := lst[n];\n if a = 'd' t hen\n px := px + ra*cos(ang);\n py := py + ra*si n(ang);\n li := [op(li), [px, py]]\n elif a = 'r' th en ang := ang - Pi/3\n elif a = 'l' then ang := ang + Pi/3\n \+ else ERROR\n end if\n end do;\n li\nend;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 53 "Now we plot the different stages (don't d isplay yet!)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "p1:=plot(p( 1,0,0,lst1)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "p2:=plot(p (1/3,1.1,0,lst2)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "p3:=p lot(p(1/9,2.2,0,lst3)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 " p4:=plot(p(1/27,3.3,0,lst4)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "p5:=plot(p(1/81,4.4,0,lst5)):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 84 "Now we group them and display them at will (the final figures m ay need to be scaled)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "di splay(\{p1,p2,p3\},axes=NONE);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "display(\{p4,p5\},axes=NONE);" }}}}{MARK "5 0 0" 57 } {VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }