本文实例为大家分享了使用turtle绘制五角星和分形树的具体代码,供大家参考,具体内容如下
turtle 库
与之前程序的区别:
- 没有显示的input()与output()
- 没有赋值语句
- 大部分语句为<a>.<b>()的形式
表示使用<a>中的方法<b>()
调用函数库<a>中的函数<b>()
形状绘制函数:
turtle.forward(distance)
画笔向前移动distance距离
turtle.backward(distance)
画笔向后移动distance距离
turtle.right(dgree)
绘制方向向右旋转dgree度
turtle.exitonclick()
点击关闭图形窗口
画笔控制函数:
turtle.penup()抬起画笔,之后移动画笔不绘制
turtle.pendown()落下画笔,之后移动画笔绘制形状
turtle.pensize()设置画笔宽度
turtle.pencolor()设置画笔颜色,常用的颜色:
white,black,grey,darkgreen,vilot,purple
详细API请参考
功能一:
五角星的绘制
遇到困难:
功能二:
加入循环操作绘制重复不同大小的五角星
- """
- 作者:陈洁
- 功能:五角星的绘制
- 版本:2.0
- 日期:04/10/2019
- 新增功能:加入循环操作绘制重复不同大小的五角星
- """
- import turtle
- def draw_pentagram(size):
- """
- 绘制五角星
- """
- # 计数器
- count = 1
- # 绘制五角星
- while count <= 5:
- turtle.forward(size)
- turtle.right(144)
- count += 1
- def main():
- """
- 主函数
- """
- turtle.penup()
- turtle.backward(200)
- turtle.pendown()
- turtle.pensize(2)
- turtle.pencolor('red')
- size = 50
- while size<=100:
- #调用函数
- draw_pentagram(size)
- size += 10
- turtle.exitonclick()
- if __name__ == '__main__':
- main()
功能三:
使用迭代函数绘制重复不同大小的五角星
注意:设置条件语句if size <= 100: draw_recursive_pentagram(size)
- """
- 作者:陈洁
- 功能:五角星的绘制
- 版本:3.0
- 日期:04/10/2019
- 新增功能:使用迭代函数绘制重复不同大小的五角星
- """
- import turtle
- def draw_pentagram(size):
- """
- 绘制五角星
- """
- def draw_recursive_pentagram(size):
- """
- 迭代绘制五角星
- """
- # 计数器
- count = 1
- # 绘制五角星
- while count <= 5:
- turtle.forward(size)
- turtle.right(144)
- count += 1
- #五角星绘制完成,更新参数
- size += 10
- if size <= 100:
- draw_recursive_pentagram(size)
- def main():
- """
- 主函数
- """
- turtle.penup()
- turtle.backward(200)
- turtle.pendown()
- turtle.pensize(2)
- turtle.pencolor('red')
- size = 50
- draw_recursive_pentagram(size)
- if __name__ == '__main__':
- main()
- """
- 作者:陈洁
- 功能:分形树
- 版本:1.0
- 日期:04/10/2019
- 新增功能:使用迭代函数绘制分形树
- """
- import turtle
- def draw_branch (branch_length):
- """
- 绘制分形树
- """
- if branch_length >5:
- #绘制右侧树枝
- 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)
- def main():
- """
- 主函数
- """
- turtle.left(90)
- turtle.penup()
- turtle.backward(150)
- turtle.pendown()
- draw_branch(100)
- turtle.exitonclick()
- if __name__ == '__main__':
- main()