Vector Field
The defined vector field
VMobject in vector_field.py
- Class VectorField(VGroup)
- Class StreamLines(VGroup)
- ShowPassingFlashWithThinningStrokeWidth(AnimationGroup)
- AnimatedStreamLines(VGroup)
Class VectorField(VGroup)
VectorField is used to generate a vector field of specifed function for given parameters.
Example
Code
# folder/file: tut/manim_mobject_vectorfield_001a.py
from manimlib.scene.scene import Scene
from manimlib.mobject.vector_field import VectorField
from manimlib.animation.creation import ShowCreation
from manimlib.utils.space_ops import rotate_vector
class manim_mobject_vectorfield_001a(Scene):
def construct(self):
self.play(ShowCreation(VectorField(lambda p: rotate_vector(p, 3.1416 / 4)).scale(0.35).move_to([3,2,0])),run_time=2)
self.play(ShowCreation(VectorField(lambda p: rotate_vector(p, 0.04)).scale(0.35).move_to([-3,2,0])),run_time=2)
self.play(ShowCreation(VectorField(lambda p: rotate_vector(p, 3.1416 / 4),x_min=-6,x_max=-0.5,y_min=-4,y_max=0)),run_time=2)
self.play(ShowCreation(VectorField(lambda p: rotate_vector(p, 0.04),x_min=0.5,x_max=6,y_min=-4,y_max=0)),run_time=2)
Output
Class StreamLines(VGroup)
StreamLines is used to generate stream lines of specifed function for given parameters.
Example
Code
# folder/file: tut/manim_mobject_streamlines_001a.py
from manimlib.scene.scene import Scene
from manimlib.mobject.vector_field import StreamLines
from manimlib.animation.creation import ShowCreation
from manimlib.utils.space_ops import rotate_vector
class manim_mobject_streamlines_001a(Scene):
def construct(self):
self.play(ShowCreation(StreamLines(lambda p: rotate_vector(p, 3.1416 / 4)).scale(0.15).move_to([3,2,0])),run_time=2)
self.play(ShowCreation(StreamLines(lambda p: rotate_vector(p, 0.04)).scale(0.15).move_to([-3,2,0])),run_time=2)
self.play(ShowCreation(StreamLines(lambda p: rotate_vector(p, 3.1416 / 4),x_min=-6,x_max=-0.5,y_min=-4,y_max=0)),run_time=2)
self.play(ShowCreation(StreamLines(lambda p: rotate_vector(p, 0.04),x_min=0.5,x_max=6,y_min=-4,y_max=0)),run_time=2)
Output
Class ShowPassingFlashWithThinningStrokeWidth(AnimationGroup)
ShowPassingFlashWithThinningStrokeWidth is used to generate a show passing flash with thinning stroke width of specified animation for given parameters.
Example
Code
# folder/file: tut/manim_mobject_showpassingflashwiththinningstrokewidth_001a.py
from manimlib.scene.scene import Scene
from manimlib.mobject.vector_field import ShowPassingFlashWithThinningStrokeWidth
from manimlib.mobject.vector_field import StreamLines
from manimlib.utils.space_ops import rotate_vector
class manim_mobject_showpassingflashwiththinningstrokewidth_001a(Scene):
def construct(self):
streamlines1=StreamLines(lambda p: rotate_vector(p, 3.1416 / 4),x_min=-1.5,x_max=1.5,y_min=-1,y_max=1).scale(0.15).move_to([3,2,0])
self.add(streamlines1)
self.play(ShowPassingFlashWithThinningStrokeWidth(streamlines1),run_time=2)
streamlines2=StreamLines(lambda p: rotate_vector(p, 0),x_min=-1.5,x_max=1.5,y_min=-1,y_max=1).scale(0.15).move_to([-3,2,0])
self.add(streamlines2)
self.play(ShowPassingFlashWithThinningStrokeWidth(streamlines2),run_time=2)
streamlines3=StreamLines(lambda p: rotate_vector(p, 3.1416 / 4),x_min=-6,x_max=-0.5,y_min=-4,y_max=0)
self.add(streamlines3)
self.play(ShowPassingFlashWithThinningStrokeWidth(streamlines3),run_time=2)
streamlines4=StreamLines(lambda p: rotate_vector(p, 0.04),x_min=0.5,x_max=6,y_min=-4,y_max=0)
self.add(streamlines4)
self.play(ShowPassingFlashWithThinningStrokeWidth(streamlines4),run_time=2)
Output
Class AnimatedStreamLines(VGroup)
AnimatedStreamLines is used to generate an animated stream lines of specified function for given parameters.
Example
Code
# folder/file: tut/manim_mobject_animatedstreamlines_001a.py
from manimlib.scene.scene import Scene
from manimlib.mobject.vector_field import StreamLines
from manimlib.mobject.vector_field import AnimatedStreamLines
from manimlib.utils.space_ops import rotate_vector
class manim_mobject_animatedstreamlines_001a(Scene):
def construct(self):
self.add(AnimatedStreamLines(StreamLines(lambda p: rotate_vector(p, 3.1416 / 4)).scale(0.15).move_to([3,2,0])))
self.wait(2)
self.add(AnimatedStreamLines(StreamLines(lambda p: rotate_vector(p, 0.04)).scale(0.15).move_to([-3,2,0])))
self.wait(2)
self.add(AnimatedStreamLines(StreamLines(lambda p: rotate_vector(p, 3.1416 / 4),x_min=-6,x_max=-0.5,y_min=-4,y_max=0)))
self.wait(2)
self.add(AnimatedStreamLines(StreamLines(lambda p: rotate_vector(p, 0.04),x_min=0.5,x_max=6,y_min=-4,y_max=0)))
self.wait(2)
Output