淘先锋技术网

首页 1 2 3 4 5 6 7

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画出树叶飘落的美丽场景。