使用turtle库绘制分形树、太阳花、五角星
1.太阳花的绘制
import turtleturtle.pencolor('red') # 画笔颜色
turtle.fillcolor('yellow') # 填充颜色turtle.begin_fill() # 准备开始填充图形
for _ in range(50): # 画笔画了50次turtle.forward(200)turtle.left(170)
turtle.end_fill() # 填充完毕turtle.mainloop() # 启动事件循环
效果:
2.五角星的绘制
(1)简单的五角星绘制,一个库,一个主函数,一个while循环
import turtledef main():count = 1while count <= 5:turtle.forward(100)turtle.right(144)count = count + 1turtle.exitonclick()if __name__ == '__main__':main()
效果:
(2)重叠五角星
比(1)多了循环,加入循环操作可以绘制重复不同大小的图形
import turtle
def draw_recursive_pentagram(size): #函数的定义'''迭代绘制五角星'''# 计数器count = 1#开始循环while count <= 5: turtle.forward(size)turtle.right(144)count += 1# 五角星绘制完成,更新参数size += 10 # size = size + 10if size <= 100:draw_recursive_pentagram(size) # 函数中调用函数自身的方式称为**递归**def main():'''主函数'''turtle.penup()turtle.backward(200)turtle.pendown()turtle.pensize(2)turtle.pencolor('red')size = 50draw_recursive_pentagram(size)turtle.exitonclick()if __name__ == '__main__': # 调用主函数main()
效果:
(2)填充五角星
import turtle
import timeturtle.pensize(5)
turtle.pencolor('yellow')
turtle.fillcolor('red')turtle.begin_fill()
for _ in range(5):turtle.forward(200)turtle.right(144)
turtle.end_fill()
time.sleep(2)#绘制Done
turtle.penup() # 起笔,离开五角星位置,开始画Done
turtle.goto(-150, -120) # Done距离五角星中心的位置
turtle.color('violet') # 蓝紫色
turtle.write('Done', font=('Arial', 40, 'normal')) # 写文本,依次为文本内容、字体、字体大小、类型。
turtle.exitonclick()
效果:
3.绘制分形树
(1)简单的,利用递归函数绘制分形树
import turtle
def draw_branch(branch_length):'''绘制分形树'''if branch_length > 3:# 绘制右侧树枝turtle.forward(branch_length)print('向前', branch_length)turtle.right(20)print('右转 20')draw_branch(branch_length - 15)# 绘制左侧树枝turtle.left(40)print('左转 40')draw_branch(branch_length - 15)# 返回之前的树枝turtle.right(20)print('右转 20')turtle.backward(branch_length)print('向后', branch_length)def main(): #主函数#turtle.penup()turtle.left(90)turtle.backward(180)turtle.pendown()branch_length = 120draw_branch(branch_length)turtle.exitonclick()if __name__ == '__main__': # 调用主函数main()
效果:
(2)带颜色的分形树
import turtle as tl # 以下需要调用turtle库函数都采用简写tldef draw_smalltree(tree_length, tree_angle):'''绘制分形树函数'''if tree_length >= 3:tl.forward(tree_length) # 往前画tl.right(tree_angle)draw_smalltree(tree_length - 10, tree_angle) # 画下一枝,直到画到树长小于3tl.left(2 * tree_angle) # 转向画左draw_smalltree(tree_length - 10, tree_angle) # 直到画到树长小于3tl.rt(tree_angle) # 转到正向上的方向,然后回溯到上一层if tree_length <= 30: # 树枝长小于30,可以当做树叶了,树叶部分为绿色tl.pencolor('green')if tree_length > 30:tl.pencolor('brown') # 树干部分为棕色tl.backward(tree_length) # 往回画,回溯到上一层def main():tl.penuptl.left(90) # 因为树是往上的,所以先把方向转左tl.backward(250) # 把起点放到底部tl.pendowntree_length = 100 # 设置树长tree_angle = 20 # 树枝分叉角度draw_smalltree(tree_length, tree_angle) # 调用draw_smalltree函数tl.exitonclick()
if __name__ == '__main__':main()
效果:
使用turtle库绘制分形树、太阳花、五角星相关推荐
- 用python画分形树的详细解析_基于Python的matplotlib库绘制分形树
import math import copy import numpy as np import matplotlib.pyplot as plt # 距离计算公式 def get_len(x1,x ...
- python实现BMR计算器,日历计算,存钱挑战,分形树和五角星绘制等
"""功能:BMR计算器版本:4.0"""def main():"""主函数""" ...
- python使用turtle库绘制一个红色五角星_使用turtle库绘制红色五角星图形
五角星绘制 ...
- 利用turtle库绘制五角星(以及填充)
#利用turtle库绘制五角星 from turtle import * pensize(5) #笔大小为6 pencolor('yellow') #设置画笔颜色(黄色 ...
- 用python绘制树和森林_使用Python的Turtle库绘制森林的实例
这是由一个小作业引发的对Python的Turtle库的学习 下面是官方手册: 1.配置编程环境 由于现在的笔记本是临时借的,编程环境不是熟悉的环境,又由于种种原因没有安装成功Anaconda,就尝试了 ...
- python 画八角形_GitHub - xuedengyue/Turtle_Drawing: 利用Turtle递归绘制分形几何图形
Turtle_Drawing 利用Turtle递归绘制分形几何图形 一.Turtle的常用方法 方法 描述 turtle.forward(distance) 向当前画笔方向移动distance像素长度 ...
- python 绘制分形树
# -*- coding: utf8 -*- """ 绘制分形树 """ import turtledeflection_angle = 2 ...
- python turtle画有趣的图形_Python turtle库绘制简单图形
一.简介 Python中的turtle库是一个直观有趣的图形绘制函数库.turtle库绘制图形有一个基本框架:一个小海龟在坐标系中爬行,其爬行轨迹形成了绘制图形. 二.简单的图形列举 1.绘制4个不同 ...
- python的turtle怎么画曲线_利用 turtle库绘制简单图形
turtle库是python的基础绘图库,这个库被介绍为一个最常用的用来介绍编程知识的方法库,其主要是用于程序设计入门,是标准库之一,利用turtle可以制作很多复杂的绘图. turtle名称含义为& ...
最新文章
- 洛谷 P4463 [集训队互测 2012] calc(拉格朗日插值优化DP)
- Swift - 文本输入框(UITextField)的用法
- python编写脚本,删除固定用户下的所有表
- mysql text类型 使用方法_MySQL使用TEXT/BLOB类型的知识点详解
- linux 等待进程,Linux 进程等待队列
- YY一下IT业的未来
- ubutnu16.04下Intel Realsense D435驱动的安装和python环境的配置
- 阅读《平庸的世界》后感觉 (两)
- discuz 表结构
- 主席树【bzoj3524(p3567)】[POI2014]Couriers
- 【笔记】JAVA SE
- TensorFlow tf.keras.layers.GlobalAveragePooling1D
- 说唱天王 Eminem 自传《The Way I am》1
- Android截屏的几种方法
- 春款童装产品做短视频营销应该怎么做?短视频营销策略分析
- 求旋转体体积表面积时的dx,ds问题的简单解释
- tit-al00 android 6,华为TIT-AL00入网 MTK6735四核全网通手机
- 2021年广西甘蔗播种面积、产量及进口情况分析:广西甘蔗产量占全国甘蔗总产量的68.56%[图]
- 有关vite的别名配置后找不到模块的问题
- 视觉SLAM学习笔记