Feel free to add it to wiki.  Any code I post I consider "freed",
which I know is not legally precise.  Consider any post by me to sage-
* licensed as creative commons, attribution share-alike.

Cheers,
Marshall

On Dec 5, 5:11 pm, "David Joyner" <[EMAIL PROTECTED]> wrote:
> I fiddled with your Sierpinski code (see attached) and loaded it into GIMP and
> fiddled some more.
>
> Maybe some sort of copyright+license should be choosen for your code?
> Marshall, can I add this to the wiki?
>
> On Fri, Dec 5, 2008 at 12:15 PM, mhampton <[EMAIL PROTECTED]> wrote:
>
> > There's a nice Koch snowflake program in python on Wikipedia which is
> > cool because it makes a little LOGO-like turtle actually draw the
> > curve.  I have a slight modification that I use occaisonally to
> > illustrate non-rectifiable curves:
>
> > {{{
> > import turtle
>
> > def draw_koch(n, track_length=False):
> >    '''
> >    Draws a Koch snowflake of depth n.  Modified by Marshall Hampton
> > from code found on the wikipedia entry on the Koch curve.
>
> >    EXAMPLE:
> >    # The following commands should work from a python command-line
> > prompt.
> >    from pykoch import *
> >    turtle.up()
> >    turtle.goto(-200,100) #so the snowflake fits; you might have to
> > modify that for your screen
> >    draw_koch(5)
> >    '''
> >    turtle.down()
> >    instruction_set = 'FRFRFR' # tells the turtle where to go: left,
> > right, or forward
> >    length = 0.0               # for tracking the path length
> >    for i in range(n):
> >        instruction_set = instruction_set.replace("F","FLFRFLF")
> >    for move in instruction_set:
> >        if move is "F":
> >            turtle.forward(100.0/3**(n-1))
> >            if track_length: length += 100.0/3**(n-1)
> >        if move is "L": turtle.left(60)
> >        if move is "R": turtle.right(120)
> >    if track_length: print "Total length at depth " + str(n) + " is: "
> > + str(length)
> > }}}
>
> > To draw the figure in the book I hacked some code up that isn't quite
> > as nice, but it got the job done:
>
> > {{{
> > patd =
> > {'0':'0340','1':'1451','2':'2532','3':'3203','4':'4014','5':'5125'}
> > def koch(depth, cleared = False, scale = 1.0):
> >    del0 = vector([1.0,0.0])*scale
> >    del1 = vector([-.5,-0.8660254])*scale
> >    del2 = vector([-.5,+.8660254])*scale
> >    del3 = vector([.5,0.8660254])*scale
> >    del4 = vector([.5,-.8660254])*scale
> >    del5 = vector([-1.0,0.0])*scale
> >    current = vector([-.5,0.8660254/3])*scale
> >    path = '012'
> >    klines = []
> >    dlist = [del0,del1,del2,del3,del4, del5]
> >    for q in range(depth):
> >        sc = 3.0^(-q)
> >        #current = current*sc
> >        scdlist = [sc*x for x in dlist]
> >        if cleared: klines = []
> >        for x in path:
> >            ind = ['0','1','2','3','4','5'].index(x)
> >            deln = scdlist[ind]
> >            klines.append(line([current, current+deln], rgbcolor =
> > (0,0,0)))
> >            current = current + deln
> >        newpath = ''
> >        for x in path:
> >            newpath = newpath + patd[x]
> >        path = newpath
> >    return klines
> > klinenest = []
> > circr =(.25+(.866/3.0)^2)^(.5)
> > circnest = []
> > for i in range(1,5):
> >    iscale = (circr)^(4-i)
> >    newk = sum(koch(i, cleared=True, scale = iscale))
> >    klinenest.append(newk)
> >    ncircr = circr*iscale
> >    circnest.append(circle((0,0),ncircr, rgbcolor = (0,0,0)))
> > klinenest = sum(klinenest)
> > circnest = sum(circnest)
> > show(klinenest+circnest,axes = False, figsize = [6,6])
> > }}}
>
> > ...I have no doubt that could be improved a lot.
>
> > For the Sierpinski triangle I did the following (again, its probably
> > not optimal):
>
> > {{{
> > nsq = n(3^(1/2))/2.0
> > tlist_old = [[[-1/2.0,0.0],[1/2.0,0.0],[0.0,nsq]]]
> > tlist_new = [x for x in tlist_old]
> > sierp = Graphics()
> > for ind in range(6):
> >    for tri in tlist_old:
> >        for p in tri:
> >            new_tri = [[(p[0]+x[0])/2.0, (p[1]+x[1])/2.0] for x in
> > tri]
> >            tlist_new.append(new_tri)
> >    tlist_old = [x for x in tlist_new]
> > q = sum([line(x+[x[0]], rgbcolor = (0,0,0)) for x in tlist_old])
> > show(q, figsize = [6,6*nsq], axes = False)
> > }}}
>
> > Cheers,
> > Marshall
>
> > On Dec 5, 7:26 am, "David Joyner" <[EMAIL PROTECTED]> wrote:
> >> On Fri, Dec 5, 2008 at 8:00 AM, mhampton <[EMAIL PROTECTED]> wrote:
>
> >> > I am working on an edition with complete sage code for the figures.
> >> > Unfortunately, this project started almost as a joke and I wasn't very
> >> > organized about it at first, so it will take me a while to organize
> >> > the code.   Since its a low priority project for me even now, I am not
> >> > sure how long it will take me to get it all together, probably between
> >> > a few weeks and a few months.  But I can certainly dig out the code
> >> > for a particular figure if there is one that particularly interests
> >> > you.
>
> >> The Sierpinski gasket and the Koch snowflake, please:-)
>
> >> > -Marshall
>
> >> > On Dec 4, 6:39 pm, "David Joyner" <[EMAIL PROTECTED]> wrote:
> >> >> This is great Marshall!
>
> >> >> Do you have the Sage code to go along with the figures?
>
> >> >> On Thu, Dec 4, 2008 at 5:13 PM, mhampton <[EMAIL PROTECTED]> wrote:
>
> >> >> > I've been working on a mathematical coloring book, with the pictures
> >> >> > created using Sage. It still needs some work but I've put a
> >> >> > preliminary version up at lulu.com:
>
> >> >> >http://www.lulu.com/content/4858716
>
> >> >> > I am not making any money on it, the cost is what lulu.com charges to
> >> >> > print it. I have also made the download freely available. I would
> >> >> > appreciate feedback, especially from people with kids who try it out.
>
> >> >> > Eventually I hope to produce a nicer first edition with complete Sage
> >> >> > source code included as an appendix.   I am thinking of releasing that
> >> >> > under a creative commons license, but I need to educate myself a
> >> >> > little more about that and other options.
>
> >> >> > -Marshall Hampton
>
>
>
>  sierpinski_seasons_greetings.sage
> 1KViewDownload
>
>  sierpinski-seasons-greetings-from-sage.png
> 95KViewDownload
>
>  sierpinski-seasons-greetings.png
> 78KViewDownload
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sage-edu" group.
To post to this group, send email to sage-edu@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sage-edu?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to