200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 使用turtle库绘制分形树 太阳花 五角星

使用turtle库绘制分形树 太阳花 五角星

时间:2021-09-20 17:47:14

相关推荐

使用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 turtledef 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 turtleimport 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)#绘制Doneturtle.penup() # 起笔,离开五角星位置,开始画Doneturtle.goto(-150, -120) # Done距离五角星中心的位置turtle.color('violet') # 蓝紫色turtle.write('Done', font=('Arial', 40, 'normal')) # 写文本,依次为文本内容、字体、字体大小、类型。turtle.exitonclick()

效果:

3.绘制分形树

(1)简单的,利用递归函数绘制分形树

import turtledef 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()

效果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。