I checked manim's method. I tried using VectorField.
from manimlib.imports import *
def pendulum_vector_field_func(point, mu = 0.1, g = 9.8, L = 3):
	theta, omega = point[:2]
	return np.array([omega, -np.sqrt(g / L) * np.sin(theta) - mu * omega, 0, ])
class test(Scene):
	def construct(self):
		plane = NumberPlane()
		mu_tracker = ValueTracker(1)
		field = VectorField(lambda p: pendulum_vector_field_func(plane.point_to_coords(p), mu = mu_tracker.get_value()), delta_x = 0.5, delta_y = 0.5, max_magnitude = 6, opacity = 0.5, )
		field.set_opacity(1)
		stream_lines = StreamLines(field.func, delta_x = 0.5, delta_y = 0.5, )
		animated_stream_lines = AnimatedStreamLines(stream_lines, line_anim_class = ShowPassingFlashWithThinningStrokeWidth, )
		self.add(plane, field, animated_stream_lines)
		self.wait(10)
https://www.youtube.com/watch?v=rkXmemK4cuA
that's all.
Recommended Posts