教你使用Python画一颗跳动的爱心

792 阅读2分钟

背景

作为一名小白选手,我们学习Python的时候,基本上都是先从基础学起,那当我们基础学完的时候,总想要实践一下,做个小功能来锻炼下自己,那今天我们先从做个跳动的爱心开始挑战吧,效果图如下:

heartbeat.gif

实战操作

  1. 安装两个依赖库numpy库和matplotlib库,numpy库来生成心形曲线的坐标点,matplotlib 用来绘制图形。
pip3 install matplotlib
pip3 install numpy
  1. 新建Python空白文件heartbeat.py,打开后首先导入上面安装的两个库。
import matplotlib.pyplot as plt
import numpy as np
  1. 创建一个新的图形窗口
fig, ax = plt.subplots()
  1. 设置画布背景颜色
fig.patch.set_facecolor('black')
  1. 定义一个函数来绘制爱心
def draw_heart(scale):
    t = np.linspace(0, 2 * np.pi, 1000)
    x = 16 * np.sin(t) ** 3
    y = 13 * np.cos(t) - 5 * np.cos(2 * t) - 2 * np.cos(3 * t) - np.cos(4 * t)
    # 使用 `ax.fill` 方法来填充爱心的轮廓,从而实现实心的效果。
    ax.fill(scale * x, scale * y, color='red')
  1. 循环绘制跳动的爱心
while True:
    # 放大爱心
    for scale in np.linspace(1, 10, 20):
        ax.clear()
        draw_heart(scale)
        plt.xlim(-200, 200)
        plt.ylim(-200, 200)
        plt.axis('off')
        plt.pause(0.1)
    
    # 缩小爱心
    for scale in np.linspace(10, 1, 20):
        ax.clear()
        draw_heart(scale)
        plt.xlim(-200, 200)
        plt.ylim(-200, 200)
        plt.axis('off')
        plt.pause(0.1)
  1. 附上完成代码:
import matplotlib.pyplot as plt
import numpy as np

# 创建一个新的图形窗口
fig, ax = plt.subplots()

# 设置画布背景颜色
fig.patch.set_facecolor('black')

# 定义一个函数来绘制爱心
def draw_heart(scale):
    t = np.linspace(0, 2 * np.pi, 1000)
    x = 16 * np.sin(t) ** 3
    y = 13 * np.cos(t) - 5 * np.cos(2 * t) - 2 * np.cos(3 * t) - np.cos(4 * t)
    ax.fill(scale * x, scale * y, color='red')

# 循环绘制跳动的爱心
while True:
    # 放大爱心
    for scale in np.linspace(1, 10, 20):
        ax.clear()
        draw_heart(scale)
        plt.xlim(-200, 200)
        plt.ylim(-200, 200)
        plt.axis('off')
        plt.pause(0.1)
    
    # 缩小爱心
    for scale in np.linspace(10, 1, 20):
        ax.clear()
        draw_heart(scale)
        plt.xlim(-200, 200)
        plt.ylim(-200, 200)
        plt.axis('off')
        plt.pause(0.1)

运行程序

  • 打开命令窗口到程序文件目录,执行python ./heartbeat.py命令,就会弹出一颗跳动的红心窗口了。你可以根据需要调整窗口大小、爱心的颜色和动画速度等参数,有时间的同学可以试一下。

结语

通过这个练习,我们可以学到如何使用 matplotlib 库来绘制实心的跳动爱心。让我们了解如何创建图形窗口、定义绘图函数、循环绘制动画等基本概念和技巧。这个练习还提醒我在编写代码之前要导入所需的库,并且需要不断尝试和调整参数来达到预期的效果。总的来说,这是一个有趣且有教育意义的练习,可以让我们熟悉 matplotlib 库的使用,并提升自己的编程技能。