manim.mobject.vector_field.ArrowVectorField

class ArrowVectorField(func, color=None, color_scheme=None, min_color_scheme_value=0, max_color_scheme_value=2, colors=['#1C758A', '#83C167', '#FFFF00', '#FC6255'], x_min=-7.611111111111111, x_max=7.611111111111111, y_min=-4.5, y_max=4.5, delta_x=0.5, delta_y=0.5, length_func=<function ArrowVectorField.<lambda>>, opacity=1.0, vector_config=None, **kwargs)[source]

Bases: manim.mobject.vector_field.VectorField

A VectorField represented by a set of change vectors.

Vector fields are always based on a function defining the Vector at every position. The values of this functions is displayed as a grid of vectors. By default the color of each vector is determined by it’s magnitude. Other color schemes can be used however.

Parameters
  • func (Callable[[numpy.ndarray], numpy.ndarray]) – The function defining the rate of change at every position of the vector field.

  • color (Optional[colour.Color]) – The color of the vector field. If set, position-specific coloring is disabled.

  • color_scheme (Optional[Callable[[numpy.ndarray], float]]) – A function mapping a vector to a single value. This value gives the position in the color gradient defined using min_color_scheme_value, max_color_scheme_value and colors.

  • min_color_scheme_value (float) – The value of the color_scheme function to be mapped to the first color in colors. Lower values also result in the first color of the gradient.

  • max_color_scheme_value (float) – The value of the color_scheme function to be mapped to the last color in colors. Higher values also result in the last color of the gradient.

  • colors (Sequence[colour.Color]) – The colors defining the color gradient of the vector field.

  • x_min (float) – The minimum x value for which to draw vectors.

  • x_max (float) – The maximum x value for which to draw vectors.

  • y_min (float) – The minimum y value for which to draw vectors.

  • y_max (float) – The maximum y value for which to draw vectors.

  • delta_x (float) – The distance in x direction between two vectors.

  • delta_y (float) – The distance in y direction between two vectors.

  • length_func (Callable[[float], float]) – The function determining the displayed size of the vectors. The actual size of the vector is passed, the returned value will be used as display size for the vector. By default this is used to cap the displayed size of vectors to reduce the clutter.

  • opacity (float) – The opacity of the arrows.

  • vector_config (Optional[dict]) – Additional arguments to be passed to the Vector constructor

  • kwargs (Any) – Additional arguments to be passed to the VGroup constructor

Examples

Example: BasicUsage

../_images/BasicUsage-1.png
from manim import *

class BasicUsage(Scene):
    def construct(self):
        func = lambda pos: ((pos[0]*UR+pos[1]*LEFT)-pos)/3
        self.add(ArrowVectorField(func))

Example: SizingAndSpacing

from manim import *

class SizingAndSpacing(Scene):
    def construct(self):
        func = lambda pos: np.sin(pos[0]/2)*UR+np.cos(pos[1]/2)*LEFT
        vf = ArrowVectorField(func, delta_x=1)
        self.add(vf)
        self.wait()

        length_func = lambda x: x / 3
        vf2 = ArrowVectorField(func, delta_x=1, length_func=length_func)
        self.play(vf.animate.become(vf2))
        self.wait()

Example: Coloring

../_images/Coloring-1.png
from manim import *

class Coloring(Scene):
    def construct(self):
        func = lambda pos: pos-LEFT*5
        colors = [RED, YELLOW, BLUE, DARK_GRAY]
        min_radius = Circle(radius=2,  color=colors[0]).shift(LEFT*5)
        max_radius = Circle(radius=10, color=colors[-1]).shift(LEFT*5)
        vf = ArrowVectorField(func, min_color_scheme_value=2, max_color_scheme_value=10, colors=colors)
        self.add(vf, min_radius, max_radius)

Methods

get_vector

Creates a vector in the vector field.

Attributes

animate

Used to animate the application of a method.

depth

The depth of the mobject.

height

The height of the mobject.

width

The width of the mobject.

get_vector(point)[source]

Creates a vector in the vector field.

The created vector is based on the function of the vector field and is rooted in the given point. Color and length fit the specifications of this vector field.

Parameters
  • point (numpy.ndarray) – The root point of the vector.

  • kwargs (Any) – Additional arguments to be passed to the Vector constructor