用Python递归绘制爱心树代码
import turtle import random # 设置画笔 turtle.speed(0) turtle.bgcolor('black') turtle.color('red') turtle.pensize(4) # 树干函数 def trunk(branch_length): if branch_length > 5: # 每次树枝的长度减小,但不需要递归 turtle.forward(branch_length) turtle.right(20) trunk(branch_length - 15) turtle.left(40) trunk(branch_length - 15) turtle.right(20) turtle.backward(branch_length) # 树冠函数 def crown(branch_length): if branch_length > 20: angle = random.randint(-25, 25) scale = random.uniform(0.7, 0.9) turtle.right(angle) turtle.forward(branch_length) crown(branch_length * scale) turtle.backward(branch_length) turtle.left(angle) # 根据三角函数绘制心形线 def love(x, y): turtle.penup() turtle.goto(x, y) turtle.pendown() turtle.color('pink') turtle.begin_fill() turtle.left(45) turtle.forward(100) turtle.circle(50, 180) turtle.right(90) turtle.circle(50, 180) turtle.forward(100) turtle.end_fill() # 根据当前画笔位置和颜色绘制一组星星 def stars(): turtle.penup() x = random.randint(-turtle.window_width() // 2, turtle.window_width() // 2) y = random.randint(-turtle.window_height() // 2, turtle.window_height() // 2) turtle.goto(x, y) turtle.pendown() turtle.color('yellow') turtle.begin_fill() for i in range(5): turtle.forward(20) turtle.right(144) turtle.end_fill() # 主函数 def main(): turtle.left(90) turtle.penup() turtle.goto(0, -150) turtle.pendown() turtle.color('brown') trunk(100) crown(70) love(0, 150) for i in range(20): stars() turtle.hideturtle() turtle.done() if __name__ == '__main__': main()
-
扫码下载安卓APP
-
微信扫一扫关注我们
微信扫一扫打开小程序
手Q扫一扫打开小程序
-
返回顶部
友情链接:
6547题库网 |
Scratch从入门到精通|
Copyright © 小码农 |
2020-2022
发表评论