Sideway
output.to from Sideway
`-=[]โŸจโŸฉ\;',./~!@#$%^&*()_+{}|:"<>? ๐‘Ž๐‘๐‘๐‘‘๐‘’๐‘“๐‘”โ„Ž๐‘–๐‘—๐‘˜๐‘™๐‘š๐‘›๐‘œ๐‘๐‘ž๐‘Ÿ๐‘ ๐‘ก๐‘ข๐‘ฃ๐‘ค๐‘ฅ๐‘ฆ๐‘ง ร…โ€‰โˆ’โ€‚ร—โ€ƒโ‹…โˆ“ยฑโˆ˜๊žŠ๏นฆโˆ—โˆ™ โ„ฏ ๐”ธ๐”นโ„‚๐”ป๐”ผ๐”ฝ๐”พโ„๐•€๐•๐•‚๐•ƒ๐•„โ„•๐•†โ„™โ„šโ„๐•Š๐•‹๐•Œ๐•๐•Ž๐•๐•โ„ค๐ด๐ต๐ถ๐ท๐ธ๐น๐บ๐ป๐ผ๐ฝ๐พ๐ฟ๐‘€๐‘๐‘‚๐‘ƒ๐‘„๐‘…๐‘†๐‘‡๐‘ˆ๐‘‰๐‘Š๐‘‹๐‘Œ๐‘ โˆผโˆฝโˆพโ‰โ‰‚โ‰ƒโ‰„โ‰…โ‰†โ‰‡โ‰ˆโ‰‰โ‰Œโ‰โ‰ โ‰ก โ‰คโ‰ฅโ‰ฆโ‰งโ‰จโ‰ฉโ‰ชโ‰ซ โˆˆโˆ‰โˆŠโˆ‹โˆŒโˆ โŠ‚โŠƒโŠ„โŠ…โІโЇ ๐›ผ๐›ฝ๐›พ๐›ฟ๐œ€๐œ๐œ‚๐œƒ๐œ„๐œ…๐œ†๐œ‡๐œˆ๐œ‰๐œŠ๐œ‹๐œŒ๐œŽ๐œ๐œ๐œ‘๐œ’๐œ“๐œ” โˆ€โˆ‚โˆƒโˆ…โฆฐโˆ†โˆ‡โˆŽโˆžโˆโˆดโˆต โˆโˆโˆ‘โ‹€โ‹โ‹‚โ‹ƒ โˆงโˆจโˆฉโˆช โˆซโˆฌโˆญโˆฎโˆฏโˆฐโˆฑโˆฒโˆณ โˆฅโ‹ฎโ‹ฏโ‹ฐโ‹ฑ โ€– โ€ฒ โ€ณ โ€ด โ„ โ— สน สบ โ€ต โ€ถ โ€ท ๏น ๏น‚ ๏นƒ ๏น„ ๏ธน ๏ธบ ๏ธป ๏ธผ ๏ธ— ๏ธ˜ ๏ธฟ ๏น€ ๏ธฝ ๏ธพ ๏น‡ ๏นˆ ๏ธท ๏ธธ โœ   โ   โŽด  โŽต  โž   โŸ   โ    โก โ†โ†‘โ†’โ†“โ†คโ†ฆโ†ฅโ†งโ†”โ†•โ†–โ†—โ†˜โ†™โ–ฒโ–ผโ—€โ–ถโ†บโ†ปโŸฒโŸณ โ†ผโ†ฝโ†พโ†ฟโ‡€โ‡โ‡‚โ‡ƒโ‡„โ‡…โ‡†โ‡‡ โ‡โ‡‘โ‡’โ‡“โ‡”โ‡Œโ‡โ‡โ‡•โ‡–โ‡—โ‡˜โ‡™โ‡™โ‡ณโฅขโฅฃโฅคโฅฅโฅฆโฅงโฅจโฅฉโฅชโฅซโฅฌโฅญโฅฎโฅฏ
Draft for Information Only

Content

Value Tracker
โ€ƒClass ValueTracker(Mobject)
โ€ƒโ€ƒExample
โ€ƒโ€ƒโ€ƒCode
โ€ƒโ€ƒโ€ƒOutput
โ€ƒClass ExponentialValueTracker(ValueTracker)
โ€ƒโ€ƒExample
โ€ƒโ€ƒโ€ƒCode
โ€ƒโ€ƒโ€ƒOutput
โ€ƒClass ComplexValueTracker(ValueTracker)
โ€ƒโ€ƒExample
โ€ƒโ€ƒโ€ƒCode
โ€ƒโ€ƒโ€ƒOutput

Value Tracker

The defined value tracker VMobject in value_tracker.py
  • Class ValueTracker(Mobject)
  • Class ExponentialValueTracker(ValueTracker)
  • Class ComplexValueTracker(ValueTracker)

Class ValueTracker(Mobject)

ValueTracker is used to generate a value tracker Mobject for given parameters.

Example

Code

# folder/file: tut/manim_mobject_valuetracker_001a.py

import numpy as np
from manimlib.scene.scene import Scene
from manimlib.mobject.value_tracker import ValueTracker
from manimlib.mobject.geometry import Dot, Line
from manimlib.mobject.number_line import NumberLine
from manimlib.mobject.svg.tex_mobject import TexMobject
from manimlib.mobject.numbers import DecimalNumber, Integer

class manim_mobject_valuetracker_001a(Scene):
    def construct(self):
        def linear(t): return t
        def v_tracker(obj):
            obj.set_value(v.get_value())
            obj.set_x(v.get_value()-7)
        v=ValueTracker(1)
        self.add(NumberLine(x_min=-6,x_max=6).move_to([0,-1.5,0]))
        dotv = Dot().add_updater(lambda i: i.set_x(v.get_value()-7))
        self.add(dotv.move_to([-4,-1.5,0]))
        textv = DecimalNumber(v.get_value()).add_updater(v_tracker)
        self.add(textv.move_to([-4,-2.5,0]))
        self.play(v.set_value,13,rate_func=linear,run_time=2)
        self.wait()
        value1=ValueTracker(0.0000001)
        text1 = DecimalNumber(value1.get_value(),num_decimal_places=5).add_updater(lambda x: x.set_value(value1.get_value())).move_to([-3,3,0])
        self.add(text1)
        self.play(value1.set_value,1,run_time=2)
        self.wait()
        text2 = DecimalNumber(value1.get_value(),num_decimal_places=5)
        self.add(text2.move_to([3,3,0]))
        def update_text(obj):
            obj.set_value(np.cos(value1.get_value()))
        text2.add_updater(update_text)
        self.play(value1.set_value,0.0000001,run_time=2)
        self.wait()
        def update_tracker(obj,obj1):
            dx=x.get_value()-update_tracker.x
            obj.increment_value(-dx),
            if (x.get_value()**2+y.get_value()**2+z.get_value()**2) > 1 :
                obj.increment_value(dx)             
            update_tracker.x=x.get_value()
            z.set_value((1-x.get_value()**2-y.get_value()**2)**0.5)
            return obj.get_value()
        x=ValueTracker(1)
        update_tracker.x=x.get_value()
        y=ValueTracker(0)
        z=ValueTracker(0)
        self.add(Line((0,0,0)).move_to([-3.5,1.5,0]))
        dot1 = Dot().add_updater(lambda i: i.set_x(x.get_value()-4))
        self.add(dot1.move_to([-4,1.5,0]))
        self.add(Line((0,0,0)).move_to([-3.5,1,0]))
        dot2 = Dot().add_updater(lambda i: i.set_x(y.get_value()-4))
        self.add(dot2.move_to([-4-1,1,0]))
        self.add(Line((0,0,0)).move_to([-3.5,0.5,0]))
        dot3 = Dot().add_updater(lambda i: i.set_x(z.get_value()-4))
        self.add(dot3.move_to([-4-1,0.5,0]))
        def update_texty(obj):
            obj.set_value(update_tracker(y,x))
        textx = DecimalNumber(x.get_value(),num_decimal_places=5).add_updater(lambda i: i.set_value(x.get_value()))
        self.add(textx.move_to([-4+2,1.5,0]))
        texty = DecimalNumber(y.get_value(),num_decimal_places=5).add_updater(update_texty)
        self.add(texty.move_to([-4+2,1,0]))
        textz = DecimalNumber(z.get_value(),num_decimal_places=5).add_updater(lambda i: i.set_value(z.get_value()))
        self.add(textz.move_to([-4+2,0.5,0]))
        total = DecimalNumber(1,num_decimal_places=22).add_updater(lambda i: i.set_value((x.get_value()**2+y.get_value()**2+z.get_value()**2)))
        self.add(total.next_to(texty,buff=0.7))
        self.play(x.set_value,0.0000001,run_time=2)
        self.wait()

Output

image

Class ExponentialValueTracker(ValueTracker)

ExponentialValueTracker is used to generate a exponential value tracker Mobject for given parameters.

Example

Code

# folder/file: tut/manim_mobject_ExponentialValueTracker_001a.py

import numpy as np
from manimlib.scene.scene import Scene
from manimlib.mobject.value_tracker import ExponentialValueTracker
from manimlib.mobject.geometry import Dot, Line
from manimlib.mobject.number_line import NumberLine
from manimlib.mobject.svg.tex_mobject import TexMobject
from manimlib.mobject.numbers import DecimalNumber, Integer

class manim_mobject_ExponentialValueTracker_001a(Scene):
    def construct(self):
        def linear(t): return t
        def e_tracker(obj):
            obj.set_value(e.get_value())
            obj.set_x(e.get_value()-7)
            textv.set_x(np.log(e.get_value())*12/np.log(13)-6)
        e=ExponentialValueTracker(1)
        self.add(NumberLine(x_min=-6,x_max=6).move_to([0,-1.5,0]))
        dotv = Dot(radius=0.15,color="#FF3300").add_updater(lambda i: i.set_x(np.log(e.get_value())*12/np.log(13)-6))
        self.add(dotv.move_to([-4,-1.5,0]))
        textv = DecimalNumber(e.get_value()).add_updater(lambda i: i.set_value(np.log(e.get_value())*12/np.log(13)+1))
        self.add(textv.move_to([-4,-0.5,0]))
        dote = Dot().add_updater(lambda i: i.set_x(e.get_value()-7))
        self.add(dote.move_to([-4,-1.5,0]))
        texte = DecimalNumber(e.get_value()).add_updater(e_tracker)
        self.add(texte.move_to([-4,-2.5,0]))
        self.play(e.set_value,13,rate_func=linear,run_time=2)
        self.wait()
        value1=ExponentialValueTracker(0.0000001)
        text1 = DecimalNumber(value1.get_value(),num_decimal_places=5).add_updater(lambda x: x.set_value(value1.get_value())).move_to([-3,3,0])
        self.add(text1)
        self.play(value1.set_value,1,run_time=2)
        self.wait()
        text2 = DecimalNumber(value1.get_value(),num_decimal_places=5)
        self.add(text2.move_to([3,3,0]))
        def update_text(obj):
            obj.set_value(np.cos(value1.get_value()))
        text2.add_updater(update_text)
        self.play(value1.set_value,0.0000001,run_time=2)
        self.wait()
        def update_tracker(obj,obj1):
            dx=x.get_value()-update_tracker.x
            obj.increment_value(-dx),
            if (x.get_value()**2+y.get_value()**2+z.get_value()**2) > 1 :
                obj.increment_value(dx)             
            update_tracker.x=x.get_value()
            z.set_value((1-x.get_value()**2-y.get_value()**2)**0.5)
            return obj.get_value()
        x=ExponentialValueTracker(1)
        update_tracker.x=x.get_value()
        y=ExponentialValueTracker(0)
        z=ExponentialValueTracker(0)
        self.add(Line((0,0,0)).move_to([-3.5,1.5,0]))
        dot1 = Dot().add_updater(lambda i: i.set_x(x.get_value()-4))
        self.add(dot1.move_to([-4,1.5,0]))
        self.add(Line((0,0,0)).move_to([-3.5,1,0]))
        dot2 = Dot().add_updater(lambda i: i.set_x(y.get_value()-4))
        self.add(dot2.move_to([-4-1,1,0]))
        self.add(Line((0,0,0)).move_to([-3.5,0.5,0]))
        dot3 = Dot().add_updater(lambda i: i.set_x(z.get_value()-4))
        self.add(dot3.move_to([-4-1,0.5,0]))
        def update_texty(obj):
            obj.set_value(update_tracker(y,x))
        textx = DecimalNumber(x.get_value(),num_decimal_places=5).add_updater(lambda i: i.set_value(x.get_value()))
        self.add(textx.move_to([-4+2,1.5,0]))
        texty = DecimalNumber(y.get_value(),num_decimal_places=5).add_updater(update_texty)
        self.add(texty.move_to([-4+2,1,0]))
        textz = DecimalNumber(z.get_value(),num_decimal_places=5).add_updater(lambda i: i.set_value(z.get_value()))
        self.add(textz.move_to([-4+2,0.5,0]))
        total = DecimalNumber(1,num_decimal_places=22).add_updater(lambda i: i.set_value((x.get_value()**2+y.get_value()**2+z.get_value()**2)))
        self.add(total.next_to(texty,buff=0.7))
        self.play(x.set_value,0.0000001,run_time=2)
        self.wait()

Output

image

Class ComplexValueTracker(ValueTracker)

ComplexValueTracker is used to generate a complex value tracker Mobject for given parameters.

Example

Code

# folder/file: tut/manim_mobject_ComplexValueTracker_001a.py

import numpy as np
from manimlib.scene.scene import Scene
from manimlib.mobject.value_tracker import ComplexValueTracker, ValueTracker
from manimlib.mobject.geometry import Dot, Line, Circle
from manimlib.mobject.number_line import NumberLine
from manimlib.mobject.svg.tex_mobject import TexMobject
from manimlib.mobject.numbers import DecimalNumber, Integer

class manim_mobject_ComplexValueTracker_001a(Scene):
    def construct(self):
        def linear(t): return t
        def v_tracker(obj):
            obj.set_value(v.get_value())
            p_tracker(obj)
        def p_tracker(obj):
            obj.set_x(v.get_value().real)
            obj.set_y(v.get_value().imag)
        v=ComplexValueTracker(complex(5.5,3.5))
        self.add(NumberLine(x_min=-6,x_max=6))
        self.add(NumberLine(x_min=-4,x_max=4).rotate(1.5708))
        dotv = Dot(color="#FF3300").add_updater(p_tracker)
        self.add(dotv.move_to([5.5,3.5,0]))
        textv = DecimalNumber(v.get_value()).add_updater(v_tracker)
        self.add(textv.move_to([5.5,3.5,0]))
        self.play(v.set_value,complex(-5.5,-3.5),rate_func=linear,run_time=2)
        self.wait()
        def s_tracker(obj):
            obj.set_value(np.abs(s.get_value())**0.5)
            obj.set_y(np.abs(s.get_value())**0.5)
        s=ComplexValueTracker(complex(5.5,3.5))
        dots = Dot(color="#FF3300").add_updater(lambda x: x.set_y(np.abs(s.get_value())**0.5))
        self.add(dots.move_to([0,0,0]))
        texts = DecimalNumber(s.get_value()).add_updater(s_tracker)
        self.add(texts.next_to(dots,buff=1))
        self.play(s.set_value,complex(-3.5,-3.5),rate_func=linear,run_time=2)
        self.wait()
        s.set_value(complex(5.5,3.5))
        circle1=Circle()
        self.add(circle1)        
        circle1.i=circle1.copy()
        def a_tracker(obj):
            obj.become(Circle())
            obj.scale(np.abs(s.get_value())**0.5)
        circle1.add_updater(a_tracker)
        self.add(circle1)
        self.play(s.set_value,complex(-3.5,-3.5),rate_func=linear,run_time=2)
        self.wait()
        i=ComplexValueTracker(complex(5.5,3.5))
        circle1=Circle()
        self.add(circle1)        
        circle1.i=circle1.copy()
        def i_tracker(obj):
            obj.become(Circle())
            obj.scale(i.get_value().real)
        circle1.add_updater(i_tracker)
        self.add(circle1)
        self.play(i.set_value,complex(-3.5,-3.5),rate_func=linear,run_time=2)
        self.wait()

Output

image

ยฉsideway

ID: 200600602 Last Updated: 6/6/2020 Revision: 0


Latest Updated LinksValid XHTML 1.0 Transitional Valid CSS!Nu Html Checker Firefox53 Chromena IExplorerna
IMAGE

Home 5

Business

Management

HBR 3

Information

Recreation

Hobbies 9

Culture

Chinese 1097

English 339

Travel 38

Reference 79

Hardware 55

Computer

Hardware 259

Software

Application 213

Digitization 37

Latex 52

Manim 205

KB 1

Numeric 19

Programming

Web 290new

Unicode 504

HTML 66new

Common Color 1new

Html Entity (Unicode) 1new

Html 401 Special 1

CSS 65new

Selector 1

SVG 46

ASP.NET 270

OS 447new

MS Windows

Windows10 1new

.NET Framework 1

DeskTop 7

Python 72

Knowledge

Mathematics

Formulas 8

Set 1

Logic 1

Algebra 84

Number Theory 207new

Trigonometry 31

Geometry 34

Coordinate Geometry 2

Calculus 67

Complex Analysis 21

Engineering

Tables 8

Mechanical

Mechanics 1

Rigid Bodies

Statics 92

Dynamics 37

Fluid 5

Fluid Kinematics 5

Control

Process Control 1

Acoustics 19

FiniteElement 2

Natural Sciences

Matter 1

Electric 27

Biology 1

Geography 1


Copyright © 2000-2026 Sideway . All rights reserved Disclaimers last modified on 06 September 2019