Python作为一种高级编程语言,绘图也是其强大的功能之一。通过Python的matplotlib库,我们可以简单易用地画出树叶飘落的漂亮场景。
import matplotlib.pyplot as plt import random class Leaf: def __init__(self, x_range, y_range): self.x = random.uniform(*x_range) self.y = random.uniform(*y_range) self.vx = random.uniform(-0.05, 0.05) self.vy = random.uniform(0.01, 0.1) self.t = 0 self.max_t = random.randint(1000, 2000) def update(self): self.x += self.vx self.y -= self.vy self.t += 1 if self.t >= self.max_t: self.__init__((self.x - 10, self.x + 10), (self.y - 10, self.y + 10)) def draw_leaves(leaves): for leaf in leaves: plt.plot(leaf.x, leaf.y, '.', color='black') def update_leaves(leaves): for leaf in leaves: leaf.update() def fall_leaves(width, height): leaves = [Leaf((0, width), (0, height)) for i in range(100)] while True: draw_leaves(leaves) update_leaves(leaves) plt.xlim(0, width) plt.ylim(0, height) plt.gca().set_aspect('equal', adjustable='box') plt.gca().axis('off') plt.pause(0.01) plt.clf() fall_leaves(800, 600)
在这段代码中,我们使用一个Leaf类来表示每个落叶,每个落叶都有自己的位置、速度和时间,以及一个最大时间。当落叶的时间超过最大时间时,我们将重新生成一个新的落叶。
我们还需要定义一个函数draw_leaves来绘制每个落叶的位置,以及一个函数update_leaves来更新每个落叶的位置。同时,我们使用一个while循环来不断更新落叶的位置,并使用matplotlib中的plt.pause函数来实现动态效果。
最后,我们调用fall_leaves函数来启动程序,传入画布的宽度和高度。
通过这样简单的代码,我们就可以用Python画出树叶飘落的美丽场景。