我是靠谱客的博主 如意墨镜,最近开发中收集的这篇文章主要介绍Python 绘制科赫雪花的简单实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

成果展示 ????

简单的跑了一下程序,结果如下,这个画图的速度已经是最快了 ???????????? :
在这里插入图片描述

源代码 ????

源码如下,这是最简单的实现,大佬勿喷 ????。

"""
@author: shoo Wang
@contact: wangsuoo@foxmail.com
@file: demo01.py
@time: 2020/4/16 0016
"""
import turtle
import random

'''
雪花位置随机
雪花个数随机[2,10]之间
雪花大小随机
'''


# 递归的画科赫曲线,控制阶数和角度
def koch(size, n):
    if n == 0:
        turtle.fd(size)
    else:
        for angle in [0, 60, -120, 60]:
            turtle.left(angle)
            koch(size / 3, n - 1)


# 控制雪花的个数、位置; 此函数为核心函数!
def control_num(n):
    # 一个随机函数控制随机位置和大小,参数为雪花的个数
    for i in range(n):
        # 隐藏画笔
        turtle.hideturtle()
        # 开始填充背景颜色
        turtle.begin_fill()
        turtle.color('white')
        # 生成随机数,控制 x 轴 与 y 轴
        num1 = random.randint(-100, 100)
        num2 = random.randint(-100, 100)
        num3 = random.randint(20, 80)
        # 控制位置随机
        control_locate(num1 * 3, num2 * 3)
        # 控制大小和阶数
        control_size(num3, 3)
        turtle.end_fill()


# 设置画笔的属性
def pen_attr():
    # 设置背景颜色
    turtle.bgcolor('blue')
    # 设置画笔的颜色和速度等属性, (吐槽一下速度真的慢,最快就是10了
    turtle.pen({'pensize': 1, 'shown': True, 'resizemode': 'auto', 'outline': 1,
                'pencolor': 'white', 'pendown': False, 'fillcolor': 'white',
                'speed': 10})


# 控制每一阶的 大小、转向
def control_size(size, level, angle = 120):
    # 画第一部分
    koch(size, level)
    turtle.right(angle)
    # 画第二部分
    koch(size, level)
    turtle.right(angle)
    # 画第三部分
    koch(size, level)


# 控制位置随机
def control_locate(resetX, resetY):
    # turtle.setup(startX, startY)
    turtle.penup()
    turtle.goto(resetX, resetY)
    turtle.pendown()


# 主函数
def main():
    """
    总体控制画布的位置,入口函数,调用其他函数
    """
    # 控制个数, 这里是随机,[2,10]
    num = random.randint(2, 10)
    control_num(num)
    turtle.done()


# 函数调用,启动!!!
main()

已知 BUG ????

  • 雪花有重叠,不过我觉得这也正常,毕竟现实中下雪也会有重叠 ????;
  • 有的雪花会出界,可以简单的通过控制边界的大小和雪花随机出现的位置避免,也可以在循环的时候多加一条判断,如果出界就 continue;

总结一下,练习了函数的运用以及一些算法的头脑风暴,复习了海龟绘图以及 random 库函数的调用。

最后

以上就是如意墨镜为你收集整理的Python 绘制科赫雪花的简单实现的全部内容,希望文章能够帮你解决Python 绘制科赫雪花的简单实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部