赞
踩
1.太阳花的绘制
import turtle
turtle.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 turtle
def main():
count = 1
while count <= 5:
turtle.forward(100)
turtle.right(144)
count = count + 1
turtle.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 + 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) turtle.exitonclick() if __name__ == '__main__': # 调用主函数 main()
效果:
(2)填充五角星
import turtle import time turtle.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 = 120 draw_branch(branch_length) turtle.exitonclick() if __name__ == '__main__': # 调用主函数 main()
效果:
(2)带颜色的分形树
import turtle as tl # 以下需要调用turtle库函数都采用简写tl def 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) # 画下一枝,直到画到树长小于3 tl.left(2 * tree_angle) # 转向画左 draw_smalltree(tree_length - 10, tree_angle) # 直到画到树长小于3 tl.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.penup tl.left(90) # 因为树是往上的,所以先把方向转左 tl.backward(250) # 把起点放到底部 tl.pendown tree_length = 100 # 设置树长 tree_angle = 20 # 树枝分叉角度 draw_smalltree(tree_length, tree_angle) # 调用draw_smalltree函数 tl.exitonclick() if __name__ == '__main__': main()
效果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。