Red de conocimiento informático - Material del sitio web - Cómo dibujar copos de nieve de Koch usando Python

Cómo dibujar copos de nieve de Koch usando Python

Puedes hacer esto:

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

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)