# draw a polygon specified by vertices
polygon([(0,0),(1,2), (2,3)])
p1 = polygon([(0,0),(1,2), (2,3)])
show(p1)
c = circle((0,0), 3) # arguments: center point, radius
# CHALLENGE: draw an equilateral triangle
polygon([(0,0),(1,0), (1/2,sqrt(3)/2)])
# 0th iteration of sierpinski triangle
show(polygon([(0,0),(1,0), (1/2,sqrt(3)/2)]), aspect_ratio=1)
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])
eqtri((1,2),4)
# 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)
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
sierp_tri((0,0),1,2)
sierp_tri((0,0),1,8)
# fractal dimension of Sierp tri
N(log(3,2))