FuncAnimation মেথড ব্যবহার করে, আমরা একটি ফিল্ম তৈরি করতে পারি। আমরা একটি ইউজার-ডিফাইনড মেথড, update, তৈরি করব যা পার্টিকেলের পজিশন পরিবর্তন করতে থাকবে এবং শেষে, মেথডটি স্ক্যাটার ইনস্ট্যান্স রিটার্ন করবে।
ধাপসমূহ
পার্টিকেলের প্রাথমিক পজিশন, ভেলোসিটি, ফোর্স, এবং সাইজ পান।
figsize = (7, 7) সহ একটি নতুন ফিগার তৈরি করুন বা একটি এক্সিস্টিং ফিগার এক্টিভেট করুন।
xlim এবং ylim সহ বর্তমান ফিগারে একটি অ্যাক্সিস যোগ করুন এবং এটি বর্তমান অ্যাক্সিস বানান।
পার্টিকেলের প্রাথমিক পজিশনের জন্য স্ক্যাটার প্লট করুন।
FuncAnimation ক্লাসে একটি ইউজার-ডিফাইনড মেথড পাস করুন যা পার্টিকেলের পজিশন পরিবর্তন করতে সাহায্য করে, যাতে একটি ফাংশন *func* কল করে বারবার অ্যানিমেশন তৈরি হয়।
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()
আউটপুট
