FuncAnimation मेथड का उपयोग करके, हम एक फिल्म बना सकते हैं। हम एक उपयोगकर्ता-परिभाषित मेथड, update, बनाएंगे जो कणों की स्थिति को बदलता रहेगा और अंत में, मेथड स्कैटर इंस्टेंस लौटाएगा।
चरण
कणों की प्रारंभिक स्थिति, वेग, बल और आकार प्राप्त करें।
figsize = (7, 7) के साथ एक नया चित्र बनाएं, या मौजूदा चित्र को सक्रिय करें।
xlim और ylim के साथ वर्तमान चित्र में एक अक्ष जोड़ें और इसे वर्तमान अक्ष बनाएं।
कणों की प्रारंभिक स्थिति के लिए स्कैटर प्लॉट करें।
एक फ़ंक्शन *func* को बार-बार कॉल करके एनिमेशन बनाएं। हम FuncAnimation क्लास में एक उपयोगकर्ता-परिभाषित मेथड पास कर सकते हैं जो कणों की स्थिति बदलने में मदद करता है।
plt.show() का उपयोग करके चित्र दिखाएं।
उदाहरण
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
import numpy as np
dt = 0.005
n = 20
L = 1
particles = np.zeros(n, dtype=[("position", float, 2),
("velocity", float, 2),
("force", float, 2),
("size", float, 1)])
particles["position"] = np.random.uniform(0, L, (n, 2))
particles["velocity"] = np.zeros((n, 2))
particles["size"] = 0.5 * np.ones(n)
fig = plt.figure(figsize=(7, 7))
ax = plt.axes(xlim=(0, L), ylim=(0, L))
scatter = ax.scatter(particles["position"][:, 0], particles["position"][:, 1])
def update(frame_number):
particles["force"] = np.random.uniform(-2, 2., (n, 2))
particles["velocity"] = particles["velocity"] + particles["force"] * dt
particles["position"] = particles["position"] + particles["velocity"] * dt
particles["position"] = particles["position"] % L
scatter.set_offsets(particles["position"])
return scatter,
anim = FuncAnimation(fig, update, interval=10)
plt.show()
आउटपुट
