我想使用 Manim 為數軸上的引數位置設定影片。我想出了如何使用 ParametricFunction 將引數的結束位置設定為一條線:
from manim import *
import numpy as np
import math
class line( Scene ):
def construct( self ):
tline = NumberLine(
x_range=[ 0, 1 ],
length=4,
color=BLUE,
include_numbers=False )
t1 = ParametricFunction( lambda t: tline.number_to_point(np.sin(t * PI)),
t_range=[0, 1],
scaling=tline.scaling, color=YELLOW )
self.play( DrawBorderThenFill( VGroup( tline ) ), run_time = 2 )
self.play( AnimationGroup(Create(t1)), run_time = 6 )
這適用于單調遞增的值,但如果終點在自身上翻倍,則效果不佳,因為影片在那個階段變得不可見。
有沒有辦法改變線圖以影片移動點而不是追蹤線?
uj5u.com熱心網友回復:
如果您的引數只是在某些固定值之間移動,您可以按照檔案中此示例中的簡單方法進行操作。
如果您想更好地控制標記在數軸上移動的確切方式,我建議您使用 aValueTracker和UpdateFromAlphaFunc影片復制類似的內容,如下所示:
from manim import *
class Example(Scene):
def construct(self):
tline = NumberLine(
x_range=[ 0, 1 ],
length=4,
color=BLUE,
include_numbers=False )
t_parameter = ValueTracker(0)
t_marker = Dot(color=YELLOW).add_updater(
lambda mob: mob.move_to(tline.number_to_point(t_parameter.get_value())),
).update()
self.play( DrawBorderThenFill( VGroup( tline ) ), run_time = 2 )
self.add(t_marker)
self.play(
UpdateFromAlphaFunc(
t_parameter,
lambda mob, alpha: mob.set_value(np.sin(alpha * PI)),
run_time=6
)
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/467759.html
