当前位置:   article > 正文

用海龟画图制作一个简单的爱心_海龟画图画爱心

海龟画图画爱心

效果展示图

效果展示图

1.导入必要的模块:

  1. import turtle
  2. import random

2.设置画布大小和背景颜色:

  1. turtle.setup(600, 600)
  2. turtle.bgcolor('black')

 

3.定义粒子类 Particle

初始化粒子的形状、位置、速度等属性。

move() 方法控制粒子的运动,包括旋转、前进、更新位置等。                                             

定义绘制爱心的函数 draw_heart():                                                                                                                                                   

4.使用 Turtle 绘制一个简单的爱心形状。                                   

5.初始化粒子列表 particles。                                                   

6.调用 draw_heart() 函数绘制爱心形状。                                   

循环生成粒子对象,并添加到 particles 列表中:

7.循环生成粒子对象,并添加到 particles 列表中:

  1. for i in range(100):
  2. particles.append(Particle())

8.在一个无限循环中,让每个粒子移动并更新画

  1. while True:
  2. for p in particles:
  3. p.move()
  4. turtle.update()

9.最后调用 turtle.done() 来保持窗口显示状态。

注意:这段代码会一直循环运行,直到手动关闭窗口。每次运行时,会生成100个随机粒子,并通过 move() 方法实现粒子的运动效果

所有代码如下:

  1. import turtle
  2. import random
  3. # 设置画布大小和背景颜色
  4. turtle.setup(600, 600)
  5. turtle.bgcolor('black')
  6. # 定义粒子的类
  7. class Particle(turtle.Turtle):
  8. def __init__(self):
  9. turtle.Turtle.__init__(self, shape='circle', visible=False)
  10. self.pu()
  11. self.speed(0)
  12. self.setundobuffer(None)
  13. self.shapesize(random.uniform(0.1, 0.5))
  14. self.fillcolor(random.choice(['red', 'pink', 'white']))
  15. self.goto(random.randint(-250, 250), random.randint(-250, 250))
  16. self.setheading(random.randint(0, 360))
  17. self.showturtle()
  18. self.vx = random.uniform(-2, 2)
  19. self.vy = random.uniform(-2, 2)
  20. self.life = random.randint(20, 50)
  21. # 粒子运动的方法
  22. def move(self):
  23. self.lt(random.randint(-10, 10))
  24. self.fd(2)
  25. self.vx *= 8.4
  26. self.vy *= 4.1
  27. self.setx(self.xcor() + self.vx)
  28. self.sety(self.ycor() + self.vy)
  29. self.life -= 1
  30. if self.life <= 0:
  31. self.clear()
  32. self.hideturtle()
  33. # 定义绘制爱心的函数
  34. def draw_heart():
  35. turtle.color('red', 'pink')
  36. turtle.begin_fill()
  37. turtle.lt(45)
  38. turtle.fd(200)
  39. turtle.circle(100, 180)
  40. turtle.rt(90)
  41. turtle.circle(100, 180)
  42. turtle.fd(200)
  43. turtle.end_fill()
  44. # 初始化粒子列表
  45. particles = []
  46. # 绘制粒子组成的爱心
  47. draw_heart()
  48. # 循环生成粒子
  49. for i in range(100):
  50. particles.append(Particle())
  51. # 粒子运动循环
  52. while True:
  53. for p in particles:
  54. p.move()
  55. turtle.update()
  56. turtle.done()

创作不易点个赞和关注,持续为您更新优质作品

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/622442
推荐阅读
相关标签
  

闽ICP备14008679号