Python项目实践:科赫曲线、科赫雪花

分形几何

分形几何图形的整体与它的局部具有很相似的特点。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

# kochDrawV1.py
import turtle
def koch(size, n):
    if n == 0:
        turtle.forward(size)
    else:
        for angle in [0, 60, -120, 60]:
            turtle.left(angle)
            koch(size / 3, n - 1)

def main():
    turtle.setup(800, 400)
    turtle.penup()
    turtle.goto(-300, -50)
    turtle.pendown()
    turtle.pensize(2)
    koch(600, 3)
    turtle.hideturtle()
    turtle.done()

main()

看一下执行顺序:
angle = {
    
    int} 0
n = {
    
    int} 3 # angle=0 koch(3)
size = {
    
    int} 600

angle = {
    
    int} 0
n = {
    
    int} 2  # angle=0 koch(2)
size = {
    
    float} 200.0

angle = {
    
    int} 0
n = {
    
    int} 1  # angle=0 koch(1)
size = {
    
    float} 66.66666666666667

angle = {
    
    int} 60
n = {
    
    int} 1  # angle=60 koch(1)
size = {
    
    float} 66.66666666666667

angle = {
    
    int} -120
n = {
    
    int} 1  # angle=-120 koch(1)
size = {
    
    float} 66.66666666666667

angle = {
    
    int} 60
n = {
    
    int} 1  # angle=60 koch(1)
size = {
    
    float} 66.66666666666667

angle = {
    
    int} 0
n = {
    
    int} 2  # angle=0 koch(2) 下一个轮回
size = {
    
    float} 200.0

angle = {
    
    int} 60
n = {
    
    int} 2  # angle=60 koch(2) 
size = {
    
    float} 200.0

在这里插入图片描述
在这里插入图片描述
当level=0时,绘制的是一个等边三角形:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

PS: source, python123.io

猜你喜欢

转载自blog.csdn.net/weixin_47008635/article/details/113808038