Cómo dibujar copos de nieve de Koch usando Python
Generar una secuencia de ángulos y luego convertirla a coordenadas de píxeles. Finalmente, use el módulo PIL de Python para dibujar la imagen, guárdela como "koch.bmp" y muestre el gráfico. Código de concepto:
#! /usr/bin/env python
#coding: utf-8
desde PIL importar imagen, ImageDraw
desde matemáticas importar sin, cos, pi p>
def genRaList( raListIn, n):
raListOut = raListIn
para i en rango(n):
raListOut = []
para ra en raListIn:
raListOut.extend([ra, - 60, 120, -60])
raListIn = raListOut
Devuelve raListOut
def raToPoints(xy, l, raList, n):
gradosToRadian = pi/180
ánguloDegrado = 0
r = l*(3**(-n))
x, y = xy
pt = [(x, y)]
para ra en raList:
ánguloDegree = ra
ánguloRadian = ánguloDegree*gradoToRadian
x = r*cos(angleRadian)
y = -r*sin(angleRadian)
pt.append((x, y))
return pt
def drawKoch(xy, l, size, raList0 , n):
raList = genRaList(raList0, n)
puntos = raToPoints(xy, l, raList, n)
im = Image.size , 'blanco')
draw = ImageDraw.Draw(im)
draw.polygon(points, fill=Ninguno, contorno='negro')
im.save('koch.bmp')
im.show()
if __name__ == '__main__':
raList0 = [240, 120 , 120]
drawKoch((207, 34), 300, (415, 415), raList0, 5)