In [2]:
# draw a polygon specified by vertices
polygon([(0,0),(1,2), (2,3)])
Out[2]:
In [3]:
p1 = polygon([(0,0),(1,2), (2,3)])
In [6]:
show(p1)
In [8]:
c = circle((0,0), 3) # arguments: center point, radius 
In [ ]:
# CHALLENGE: draw an equilateral triangle
In [37]:
polygon([(0,0),(1,0), (1/2,sqrt(3)/2)])
Out[37]:
In [15]:
# 0th iteration of sierpinski triangle
show(polygon([(0,0),(1,0), (1/2,sqrt(3)/2)]), aspect_ratio=1)
In [16]:
def eqtri(basept,size):
    """Returns triangle with left vertex at basept, 
    and side length given by size"""
    (x,y) = basept
    v1 = (x,y)
    v2 = (x + size,y)
    v3 = (x+size/2, y + size*sqrt(3)/2)
    return polygon([v1,v2,v3])
In [18]:
eqtri((1,2),4)
Out[18]:
In [19]:
# CHALLENGE: draw 1st iteration of Sierp triangle 
eqtri((0,0),1/2)+eqtri((1/2,0),1/2)+eqtri((1/4,sqrt(3)/4),1/2)
Out[19]:
In [28]:
def sierp_tri(basept,size,iter):
    """Return a sierpinksi triangle of side length size, 
    left vertex at basept, and iter number of iterations"""
    if iter==0:
        return eqtri(basept,size)
    else:
        (x,y) = basept
        t1 = sierp_tri((x,y), size/2, iter-1)
        t2 = sierp_tri((x+size/2,y), size/2, iter-1)
        t3 = sierp_tri((x+size/4,y+size*sqrt(3)/4), size/2, iter-1)
        return t1+t2+t3
In [29]:
sierp_tri((0,0),1,2)
Out[29]:
In [34]:
sierp_tri((0,0),1,8)
Out[34]:
In [36]:
# fractal dimension of Sierp tri
N(log(3,2))
Out[36]:
1.58496250072116
In [ ]: