python之turtle海龟画雪花

您所在的位置:网站首页 小花雪花怎么画 python之turtle海龟画雪花

python之turtle海龟画雪花

2023-08-13 10:42| 来源: 网络整理| 查看: 265

最近学习了海龟画图科赫雪花,总感觉不是很像,在广东上班很多年没见过雪花了,于是百度一下,图片如下雪花 在这里插入图片描述 一般都是有6个分支,也有极少数为5个分支,每个分支都是一样的,因此可以定义一个分支的函数

import turtle as t def fork(l): #定义分支的左右叉函数 t.pendown() t.left(60) t.fd(l) t.penup() t.fd(-l) t.pendown() t.right(120) t.fd(l) t.penup() t.fd(-l) t.left(60) t.pendown() def branch(l,n): 定义雪花分支函数 # t.pencolor(random.random(), random.random(), random.random()) t.fd(l) k = [l/n/3, l/n, 3*l/2/n, 2*l/n, 3*l/2/n, 2*l/n/3, l/n/3, 2*l/n/3, l/n/3] for i in range (n-1): if i == 3 and n >= 7: #当分支的左右叉数量多于7的时候在第四个叉上再增加分支,更接近于图2 t.fd(-l / n) t.left(60) branch(3*l/n, 3) t.right(120) branch(3 * l / n, 3) t.left(60) else: t.penup() t.fd(-l/n) fork(k[i]) t.fd(-l/n)

这里我用了两个参数,分别代表雪花的半径和分支的数量 分支写好了再来个for循环生成雪花了

def snow(l,m,n): for i in range(m): t.right(360/m) branch(l,n)

运行结果如下,自我感觉还不错,有那么点雪花的意思了 snow(100, 6, 8) snow(100, 6, 6) snow(100, 5, 9) 不知道有没有这种雪花

然后小朋友说我想要好多雪花,而且要不一样的随机出现,想一下如何结合random函数实现呢 其实只要snow()函数的3个参数随机就好啦,但要注意合理范围,于是我又有了这个

import random def random_snow(): l = random.randint(10,100) m = random.randint(5,6) n = random.randint(6,9) snow(l, m, n)

主函数带个雪花数量参数

def main(j): t.setup(800,600) t.speed(0) for i in range(j): xy() random_snow() t.done()

最后直接获取用户输入数量

main(eval(input("请输入需要生成雪花的数量:")))

来个5片雪花的 在这里插入图片描述 再来个多点的20片吧 在这里插入图片描述 叠在了一起太乱了,来点颜色吧,生活就要五彩斑斓,尽管雪花不是彩色的 10片彩色雪花 在这里插入图片描述 雪花一片一片飘啊飘



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3