用turtle绘制分形树和五角星

Trixie ·
更新时间:2024-11-10
· 893 次阅读

博客简介

本篇博客介绍如何用turtle绘制分形树和五角星,分形树效果如下:
在这里插入图片描述

五角星的绘制

绘制五角星十分简单,要点如下:

从七点开始直线绘制一个边长度 到达顶点后旋转144度 重复这个过程 实现代码 import turtle from turtle import Turtle p=Turtle() p.goto(-100,-50) p.speed(3) p.pensize(5) p.color("yellow","skyblue") p.begin_fill() for i in range(5): p.forward(400) p.right(144) p.end_fill() turtle.done() 效果如下:

在这里插入图片描述

绘制分形树

分形树的绘制我们可以采用递归的方法:

分形树由左右两个子树构成 每次绘制时,遍历已有的树枝 在每个树枝上绘制左枝,绘制右枝 将新绘制的树枝加入新的集合中 递归处理新的树枝集合 递归过程中削减画笔的size,使其越来越小 递归过程中随机生成画笔颜色 实现代码: import turtle from random import choice from turtle import Turtle def colors(): return (choice(range(256)),choice(range(256)),choice(range(256))) def tree(plist,l,a,f,size): if(l>1): lst=[] for p in plist: p.color(colors()) p.pensize(size) p.forward(l) q=p.clone() p.left(a) q.right(a) lst.append(p) lst.append(q) tree(lst,l*f,a,f,0.82*size) def makeTree(x,y): p=Turtle() turtle.colormode(255) p.pensize(100) p.hideturtle() p.getscreen().tracer(30,0) p.left(90) p.penup() p.goto(x,y) p.pendown() t=tree([p],350,65,0.6475,10) turtle.done() print(len(p.getscreen().turtles())) def main(): makeTree(0,-450) main()

效果图:
在这里插入图片描述


作者:飞翔的哈士奇



五角 turtle

需要 登录 后方可回复, 如果你还没有账号请 注册新账号