返回

情人节礼物:用Python画一个动态爱心

闲谈

用 Python 绘制动态爱心:让你的心随着鼠标跳动

前言

爱是普世的,我们每个人都渴望体验这种温暖而令人欣慰的情感。现在,让我们用 Python 创造一个动态的爱心,它会随着你的鼠标移动而跳动,就像你那颗敏感的心脏。

绘制动态爱心

1. 搭建画布

首先,我们需要设置我们的画布。

import turtle
import math

turtle.setup(600, 600)
turtle.title("动态爱心")

2. 创建乌龟

我们的乌龟将是爱心形状的艺术家。

turtle.shape("turtle")
turtle.color("red")
turtle.speed(0)

3. 定义爱心形状

现在,是时候定义爱心的形状了。

def heart(x, y, r):
  """
  绘制一个爱心

  参数:
    x: 爱心的中心x坐标
    y: 爱心的中心y坐标
    r: 爱心的半径

  """

  turtle.penup()
  turtle.goto(x, y)
  turtle.pendown()

  turtle.begin_fill()
  turtle.left(45)
  for i in range(2):
    turtle.circle(r, 90)
    turtle.right(90)
    turtle.circle(r, 90)
    turtle.left(45)
  turtle.end_fill()

4. 跟随鼠标移动

现在,我们让爱心随着鼠标移动。

def mouse_move(x, y):
  """
  处理鼠标移动事件

  参数:
    x: 鼠标x坐标
    y: 鼠标y坐标

  """

  # 获取鼠标距离屏幕中心的距离
  distance = math.sqrt(x**2 + y** 2)

  # 如果鼠标靠近屏幕中心,则绘制爱心
  if distance < 100:
    heart(x, y, 50)

5. 启动画笔

最后,我们让乌龟开始作画。

turtle.onscreenclick(mouse_move)

turtle.mainloop()

见证爱心的跳动

运行代码,然后用鼠标在屏幕上移动。你会惊叹于爱心如何随着你的鼠标跳动,就好像它和你那颗充满爱意的真实的心脏息息相关。

个性化你的爱心

除了默认的红色,你还可以根据自己的喜好定制爱心的颜色、大小和形状。

# 设置爱心的颜色
turtle.color("pink")

# 改变爱心的半径
heart(x, y, 100)

# 使用不同的形状
turtle.shape("circle")

常见问题解答

  • 为什么我的爱心不跳动?

确保你已经正确绑定了鼠标移动事件处理函数。

  • 爱心跳动的范围可以有多大?

你可以调整鼠标距离屏幕中心的距离阈值来控制爱心的跳动范围。

  • 我可以保存爱心图片吗?

是的,使用 turtle.getcanvas().postscript(file="my_heart.eps") 将图片保存为 EPS 文件。

  • 我可以让爱心跳得更快或更慢吗?

调整 turtle.speed() 设置以控制乌龟的移动速度,从而影响爱心的跳动速度。

  • 爱心可以改变形状吗?

是的,通过修改 heart() 函数中的圆形绘制部分,你可以创建不同的爱心形状。

结语

你已经学会了如何用 Python 绘制一个动态爱心。让你的心随着鼠标跳动,享受创造和爱的乐趣。祝你 Python 之旅愉快,充满无限可能!