值跟踪器

限定名称: manim.mobject.value\_tracker.ValueTracker

class ValueTracker(value=0, **kwargs)[来源]

基础类: Mobject

一个可用于跟踪(实值)参数的mobject。 对于动画参数变化非常有用。

不用于显示。相反,位置编码了一些数字,通常是另一个动画或持续动画用于其更新函数的数字,通过将其视为一个mobject,它仍然可以像其他任何东西一样被动画化和操作。

当使用animate语法进行动画时,此值会不断变化。

示例

示例:ValueTrackerExample

from manim import *

class ValueTrackerExample(Scene):
    def construct(self):
        number_line = NumberLine()
        pointer = Vector(DOWN)
        label = MathTex("x").add_updater(lambda m: m.next_to(pointer, UP))

        tracker = ValueTracker(0)
        pointer.add_updater(
            lambda m: m.next_to(
                        number_line.n2p(tracker.get_value()),
                        UP
                    )
        )
        self.add(number_line, pointer,label)
        tracker += 1.5
        self.wait(1)
        tracker -= 4
        self.wait(0.5)
        self.play(tracker.animate.set_value(5))
        self.wait(0.5)
        self.play(tracker.animate.set_value(3))
        self.play(tracker.animate.increment_value(-2))
        self.wait(0.5)
class ValueTrackerExample(Scene):
    def construct(self):
        number_line = NumberLine()
        pointer = Vector(DOWN)
        label = MathTex("x").add_updater(lambda m: m.next_to(pointer, UP))

        tracker = ValueTracker(0)
        pointer.add_updater(
            lambda m: m.next_to(
                        number_line.n2p(tracker.get_value()),
                        UP
                    )
        )
        self.add(number_line, pointer,label)
        tracker += 1.5
        self.wait(1)
        tracker -= 4
        self.wait(0.5)
        self.play(tracker.animate.set_value(5))
        self.wait(0.5)
        self.play(tracker.animate.set_value(3))
        self.play(tracker.animate.increment_value(-2))
        self.wait(0.5)

注意

你也可以将ValueTrackers链接到更新器。在这种情况下,你必须确保ValueTracker通过add添加到场景中。

示例:ValueTrackerExample

from manim import *

class ValueTrackerExample(Scene):
    def construct(self):
        tracker = ValueTracker(0)
        label = Dot(radius=3).add_updater(lambda x : x.set_x(tracker.get_value()))
        self.add(label)
        self.add(tracker)
        tracker.add_updater(lambda mobject, dt: mobject.increment_value(dt))
        self.wait(2)
class ValueTrackerExample(Scene):
    def construct(self):
        tracker = ValueTracker(0)
        label = Dot(radius=3).add_updater(lambda x : x.set_x(tracker.get_value()))
        self.add(label)
        self.add(tracker)
        tracker.add_updater(lambda mobject, dt: mobject.increment_value(dt))
        self.wait(2)

方法

get_value

获取此ValueTracker的当前值。

increment_value

将标量值递增(添加)到 ValueTracker

interpolate

将自身转换为mobject1和mobject2之间的插值。

set_value

为ValueTracker设置一个新的标量值

属性

animate

用于动画化self的任何方法的应用。

animation_overrides

depth

mobject的深度。

height

mobject的高度。

width

mobject的宽度。

_original__init__(value=0, **kwargs)

初始化自身。有关准确的签名,请参阅 help(type(self))。

get_value()[来源]

获取此ValueTracker的当前值。

Return type:

浮点数

increment_value(d_value)[source]

将标量值递增(添加)到 ValueTracker

Parameters:

d_value (float)

interpolate(mobject1, mobject2, alpha, path_func=<function interpolate>)[source]

将自身转换为mobject1和mobject2之间的插值。

set_value(value)[来源]

为ValueTracker设置一个新的标量值

Parameters:

(浮点数)