From b7cf5e82e393b4ec1c452b1ded55ceaea6794456 Mon Sep 17 00:00:00 2001 From: Grant Sanderson Date: Tue, 5 Feb 2019 15:39:58 -0800 Subject: [PATCH] rate_func can no longer be None, must be a function. Use 'linear' instead of None --- active_projects/eop/chapter1/intro.py | 2 +- manimlib/animation/animation.py | 15 +++------- manimlib/animation/composition.py | 5 ++-- manimlib/animation/creation.py | 3 +- manimlib/animation/indication.py | 3 +- manimlib/animation/movement.py | 3 +- manimlib/animation/rotation.py | 3 +- manimlib/for_3b1b_videos/common_scenes.py | 3 +- manimlib/mobject/svg/drawings.py | 3 +- manimlib/mobject/types/vectorized_mobject.py | 11 ++++++++ old_projects/WindingNumber.py | 10 +++---- old_projects/WindingNumber_G.py | 2 +- old_projects/basel/basel2.py | 2 +- old_projects/borsuk.py | 8 +++--- old_projects/brachistochrone/cycloid.py | 4 +-- .../brachistochrone/drawing_images.py | 2 +- old_projects/brachistochrone/graveyard.py | 2 +- old_projects/brachistochrone/light.py | 8 +++--- old_projects/brachistochrone/multilayered.py | 2 +- old_projects/brachistochrone/wordplay.py | 4 +-- old_projects/clacks/question.py | 12 ++++---- old_projects/clacks/solution1.py | 4 +-- .../clacks/solution2/mirror_scenes.py | 2 +- .../clacks/solution2/position_phase_space.py | 4 +-- old_projects/crypto.py | 2 +- old_projects/dandelin.py | 4 +-- old_projects/div_curl.py | 6 ++-- old_projects/domino_play.py | 4 +-- old_projects/efvgt.py | 6 ++-- old_projects/eoc/chapter1.py | 2 +- old_projects/eoc/chapter10.py | 2 +- old_projects/eoc/chapter2.py | 4 +-- old_projects/eoc/chapter3.py | 8 +++--- old_projects/eoc/chapter4.py | 2 +- old_projects/eoc/chapter5.py | 2 +- old_projects/eoc/chapter7.py | 2 +- old_projects/eoc/chapter8.py | 12 ++++---- old_projects/eoc/chapter9.py | 2 +- old_projects/eoc/old_chapter1.py | 2 +- old_projects/eola/chapter5.py | 6 ++-- old_projects/fourier.py | 24 ++++++++-------- old_projects/hanoi.py | 6 ++-- old_projects/highD.py | 2 +- old_projects/hilbert/section1.py | 6 ++-- old_projects/hilbert/section2.py | 4 +-- old_projects/leibniz.py | 2 +- old_projects/lost_lecture.py | 8 +++--- old_projects/music_and_measure.py | 6 ++-- old_projects/nn/part1.py | 4 +-- old_projects/nn/part2.py | 6 ++-- old_projects/patreon.py | 2 +- old_projects/quaternions.py | 2 +- old_projects/tattoo.py | 6 ++-- old_projects/uncertainty.py | 28 +++++++++---------- old_projects/wallis.py | 4 +-- old_projects/waves.py | 10 +++---- old_projects/wcat.py | 2 +- old_projects/zeta.py | 4 +-- 58 files changed, 160 insertions(+), 149 deletions(-) diff --git a/active_projects/eop/chapter1/intro.py b/active_projects/eop/chapter1/intro.py index 9689fa51..70a1c7bd 100644 --- a/active_projects/eop/chapter1/intro.py +++ b/active_projects/eop/chapter1/intro.py @@ -5,7 +5,7 @@ class Chapter1OpeningQuote(OpeningQuote): CONFIG = { "fade_in_kwargs": { "submobject_mode": "lagged_start", - "rate_func": None, + "rate_func": linear, "lag_factor": 9, "run_time": 10, }, diff --git a/manimlib/animation/animation.py b/manimlib/animation/animation.py index c0885b74..2ad04d6b 100644 --- a/manimlib/animation/animation.py +++ b/manimlib/animation/animation.py @@ -33,25 +33,21 @@ class Animation(object): mobject.update() # Keep track of where it started self.starting_mobject = self.mobject.copy() - if self.rate_func is None: - self.rate_func = (lambda x: x) if self.name is None: self.name = self.__class__.__name__ + str(self.mobject) self.all_families_zipped = self.get_all_families_zipped() self.update(0) - def update_config(self, **kwargs): - digest_config(self, kwargs) - if "rate_func" in kwargs and kwargs["rate_func"] is None: - self.rate_func = (lambda x: x) - return self - def __str__(self): return self.name def copy(self): return deepcopy(self) + def update_config(self, **kwargs): + digest_config(self, kwargs) + return self + def update(self, alpha): alpha = np.clip(alpha, 0, 1) self.update_mobject(self.rate_func(alpha)) @@ -106,9 +102,6 @@ class Animation(object): return self.run_time def set_rate_func(self, rate_func): - if rate_func is None: - def rate_func(x): - return x self.rate_func = rate_func return self diff --git a/manimlib/animation/composition.py b/manimlib/animation/composition.py index 8763ff89..ed466827 100644 --- a/manimlib/animation/composition.py +++ b/manimlib/animation/composition.py @@ -8,6 +8,7 @@ from manimlib.mobject.mobject import Group from manimlib.mobject.mobject import Mobject from manimlib.utils.bezier import inverse_interpolate from manimlib.utils.config_ops import digest_config +from manimlib.utils.rate_functions import linear from manimlib.utils.rate_functions import squish_rate_func @@ -23,7 +24,7 @@ class EmptyAnimation(Animation): class Succession(Animation): CONFIG = { - "rate_func": None, + "rate_func": linear, } def __init__(self, *args, **kwargs): @@ -178,7 +179,7 @@ class Succession(Animation): class AnimationGroup(Animation): CONFIG = { - "rate_func": None + "rate_func": linear } def __init__(self, *sub_anims, **kwargs): diff --git a/manimlib/animation/creation.py b/manimlib/animation/creation.py index 3b17140f..7e5d335a 100644 --- a/manimlib/animation/creation.py +++ b/manimlib/animation/creation.py @@ -9,6 +9,7 @@ from manimlib.utils.bezier import interpolate from manimlib.utils.config_ops import digest_config from manimlib.utils.paths import counterclockwise_path from manimlib.utils.rate_functions import double_smooth +from manimlib.utils.rate_functions import linear from manimlib.utils.rate_functions import smooth # Drawing @@ -84,7 +85,7 @@ class DrawBorderThenFill(Animation): class Write(DrawBorderThenFill): CONFIG = { - "rate_func": None, + "rate_func": linear, "submobject_mode": "lagged_start", } diff --git a/manimlib/animation/indication.py b/manimlib/animation/indication.py index 441dd874..6f28c583 100644 --- a/manimlib/animation/indication.py +++ b/manimlib/animation/indication.py @@ -20,6 +20,7 @@ from manimlib.mobject.types.vectorized_mobject import VGroup from manimlib.mobject.geometry import Line from manimlib.utils.bezier import interpolate from manimlib.utils.config_ops import digest_config +from manimlib.utils.rate_functions import linear from manimlib.utils.rate_functions import smooth from manimlib.utils.rate_functions import squish_rate_func from manimlib.utils.rate_functions import there_and_back @@ -255,7 +256,7 @@ class Vibrate(Animation): "amplitude": 0.5, "radius": FRAME_X_RADIUS / 2, "run_time": 3.0, - "rate_func": None + "rate_func": linear } def __init__(self, mobject=None, **kwargs): diff --git a/manimlib/animation/movement.py b/manimlib/animation/movement.py index 645ac603..f80e425e 100644 --- a/manimlib/animation/movement.py +++ b/manimlib/animation/movement.py @@ -1,6 +1,7 @@ from manimlib.animation.animation import Animation from manimlib.constants import * from manimlib.utils.config_ops import digest_config +from manimlib.utils.rate_functions import linear class Homotopy(Animation): @@ -47,7 +48,7 @@ class ComplexHomotopy(Homotopy): class PhaseFlow(Animation): CONFIG = { "virtual_time": 1, - "rate_func": None, + "rate_func": linear, } def __init__(self, function, mobject, **kwargs): diff --git a/manimlib/animation/rotation.py b/manimlib/animation/rotation.py index 66c1df78..fa8f4717 100644 --- a/manimlib/animation/rotation.py +++ b/manimlib/animation/rotation.py @@ -4,6 +4,7 @@ from manimlib.animation.animation import Animation from manimlib.animation.transform import Transform from manimlib.constants import * from manimlib.utils.config_ops import digest_config +from manimlib.utils.rate_functions import linear class Rotating(Animation): @@ -11,7 +12,7 @@ class Rotating(Animation): "axis": OUT, "radians": TAU, "run_time": 5, - "rate_func": None, + "rate_func": linear, "in_place": True, "about_point": None, "about_edge": None, diff --git a/manimlib/for_3b1b_videos/common_scenes.py b/manimlib/for_3b1b_videos/common_scenes.py index ea98b991..71ad8aed 100644 --- a/manimlib/for_3b1b_videos/common_scenes.py +++ b/manimlib/for_3b1b_videos/common_scenes.py @@ -21,6 +21,7 @@ from manimlib.mobject.svg.tex_mobject import TextMobject from manimlib.mobject.types.vectorized_mobject import VGroup from manimlib.scene.moving_camera_scene import MovingCameraScene from manimlib.scene.scene import Scene +from manimlib.utils.rate_functions import linear from manimlib.utils.space_ops import get_norm from manimlib.utils.space_ops import normalize @@ -33,7 +34,7 @@ class OpeningQuote(Scene): "author": "", "fade_in_kwargs": { "submobject_mode": "lagged_start", - "rate_func": None, + "rate_func": linear, "lag_factor": 4, "run_time": 5, }, diff --git a/manimlib/mobject/svg/drawings.py b/manimlib/mobject/svg/drawings.py index e07185f5..ad94c09a 100644 --- a/manimlib/mobject/svg/drawings.py +++ b/manimlib/mobject/svg/drawings.py @@ -20,6 +20,7 @@ from manimlib.mobject.types.vectorized_mobject import VMobject from manimlib.mobject.types.vectorized_mobject import VectorizedPoint from manimlib.utils.bezier import interpolate from manimlib.utils.config_ops import digest_config +from manimlib.utils.rate_functions import linear from manimlib.utils.space_ops import angle_of_vector from manimlib.utils.space_ops import complex_to_R3 from manimlib.utils.space_ops import rotate_vector @@ -377,7 +378,7 @@ class ClockPassesTime(Animation): CONFIG = { "run_time": 5, "hours_passed": 12, - "rate_func": None, + "rate_func": linear, } def __init__(self, clock, **kwargs): diff --git a/manimlib/mobject/types/vectorized_mobject.py b/manimlib/mobject/types/vectorized_mobject.py index fdc94b99..a7c931c2 100644 --- a/manimlib/mobject/types/vectorized_mobject.py +++ b/manimlib/mobject/types/vectorized_mobject.py @@ -844,6 +844,17 @@ class VectorizedPoint(VMobject): self.set_points(np.array([new_loc])) +class CurvesAsSubmobjects(VGroup): + def __init__(self, vmobject, **kwargs): + VGroup.__init__(self, **kwargs) + tuples = vmobject.get_cubic_bezier_tuples() + for tup in tuples: + part = VMobject() + part.set_points(tup) + part.match_style(vmobject) + self.add(part) + + class DashedMobject(VMobject): CONFIG = { "dashes_num": 15, diff --git a/old_projects/WindingNumber.py b/old_projects/WindingNumber.py index b53f827b..c9690814 100644 --- a/old_projects/WindingNumber.py +++ b/old_projects/WindingNumber.py @@ -601,7 +601,7 @@ def walker_animation_with_display( number_update_func, tracked_mobject = walker_anim.compound_walker.walker, **kwargs) - anim_group = AnimationGroup(walker_anim, display_anim, rate_func = None) + anim_group = AnimationGroup(walker_anim, display_anim, rate_func=linear) return anim_group else: return walker_anim @@ -758,7 +758,7 @@ class PiWalker(ColorMappedByFuncScene): polygon.stroke_width = border_stroke_width polygon.color_using_background_image(self.background_image_file) total_run_time = len(points) * self.step_run_time - polygon_anim = ShowCreation(polygon, run_time = total_run_time, rate_func = None) + polygon_anim = ShowCreation(polygon, run_time = total_run_time, rate_func=linear) walker_anim = empty_animation start_wind = 0 @@ -807,7 +807,7 @@ class PiWalker(ColorMappedByFuncScene): new_anim = FuncRotater(base_arrow, rev_func = rev_func, run_time = self.step_run_time, - rate_func = None, + rate_func=linear, remover = i < len(walk_coords) - 1, ) @@ -1305,7 +1305,7 @@ class ArrowCircleTest(Scene): arrows = [rev_rotate(base_arrow.copy(), 0.5 - (fdiv(i, num_arrows))) for i in range(num_arrows)] arrows_vgroup = VGroup(*arrows) - self.play(ShowCreation(arrows_vgroup), run_time = 2.5, rate_func = None) + self.play(ShowCreation(arrows_vgroup), run_time = 2.5, rate_func=linear) self.wait() @@ -1385,7 +1385,7 @@ class OdometerScene(ColorMappedObjectsScene): FuncRotater(base_arrow, rev_func = lambda x : -self.rotate_func(x)), ChangingDecimal(num_display, display_func), run_time = self.run_time, - rate_func = None) + rate_func=linear) ############# # Above are mostly general tools; here, we list, in order, finished or near-finished scenes diff --git a/old_projects/WindingNumber_G.py b/old_projects/WindingNumber_G.py index 6047bba3..2666a5ac 100644 --- a/old_projects/WindingNumber_G.py +++ b/old_projects/WindingNumber_G.py @@ -1031,7 +1031,7 @@ class IntroduceVectorField(IntroduceInputOutputScene): self.play( in_dot.move_to, path.point_from_proportion(a), run_time = 0.2, - rate_func = None, + rate_func=linear, ) in_vectors.add(in_vector.copy()) diff --git a/old_projects/basel/basel2.py b/old_projects/basel/basel2.py index 59f2f84e..e25b3954 100644 --- a/old_projects/basel/basel2.py +++ b/old_projects/basel/basel2.py @@ -2856,7 +2856,7 @@ class InscribedeAngleThreorem(TeacherStudentsScene): self.play( self.teacher.change, "raise_right_hand", - ShowCreation(shape, rate_func = None), + ShowCreation(shape, rate_func=linear), ) self.play(*list(map(FadeIn, [angle_mark, theta]))) self.play( diff --git a/old_projects/borsuk.py b/old_projects/borsuk.py index 143ba724..d0325b42 100644 --- a/old_projects/borsuk.py +++ b/old_projects/borsuk.py @@ -690,7 +690,7 @@ class TemperaturePressurePlane(GraphScene): path.set_color(GREEN) - self.play(ShowCreation(path, run_time = 10, rate_func = None)) + self.play(ShowCreation(path, run_time = 10, rate_func=linear)) self.wait() class AlternateSphereSquishing(ExternallyAnimatedScene): @@ -844,11 +844,11 @@ class WalkEquatorPostTransform(GraphScene): target_dots += [alt_dots, alt_dots.copy()] equator_transform = Succession(*[ - Transform(equator, arc, rate_func = None) + Transform(equator, arc, rate_func=linear) for arc in target_arcs ]) dots_transform = Succession(*[ - Transform(dots, target, rate_func = None) + Transform(dots, target, rate_func=linear) for target in target_dots ]) @@ -857,7 +857,7 @@ class WalkEquatorPostTransform(GraphScene): equator_transform, dots_transform, run_time = 10, - rate_func = None, + rate_func=linear, ) self.wait(2) diff --git a/old_projects/brachistochrone/cycloid.py b/old_projects/brachistochrone/cycloid.py index 3867e4dc..6e047069 100644 --- a/old_projects/brachistochrone/cycloid.py +++ b/old_projects/brachistochrone/cycloid.py @@ -492,7 +492,7 @@ class EquationsForCycloid(CycloidScene): self.play(ShimmerIn(equations)) self.grow_parts() - self.draw_cycloid(rate_func = None, run_time = 5) + self.draw_cycloid(rate_func=linear, run_time = 5) self.wait() class SlidingObject(CycloidScene, PathSlidingScene): @@ -559,7 +559,7 @@ class SlidingObject(CycloidScene, PathSlidingScene): self.circle, self.cycloid.points[-1]-self.cycloid.points[0], run_time = end_time-start_time, - rate_func = None + rate_func=linear ) ) self.add(self.circle, self.slider) diff --git a/old_projects/brachistochrone/drawing_images.py b/old_projects/brachistochrone/drawing_images.py index 848c2469..a83bc6cc 100644 --- a/old_projects/brachistochrone/drawing_images.py +++ b/old_projects/brachistochrone/drawing_images.py @@ -146,7 +146,7 @@ class TracePicture(Scene): ShowCreation( edge_mobject, run_time = run_time, - rate_func = None + rate_func=linear ) ) self.remove(edge_mobject) diff --git a/old_projects/brachistochrone/graveyard.py b/old_projects/brachistochrone/graveyard.py index d8135a4f..c39da5b9 100644 --- a/old_projects/brachistochrone/graveyard.py +++ b/old_projects/brachistochrone/graveyard.py @@ -158,7 +158,7 @@ class MultilayeredGlass(PhotonScene, ZoomedScene): for v_eq, path, time in zip(v_equations, center_paths, [2, 1, 0.5]): photon_run = self.photon_run_along_path( path, - rate_func = None + rate_func=linear ) self.play( ShimmerIn(v_eq[0]), diff --git a/old_projects/brachistochrone/light.py b/old_projects/brachistochrone/light.py index b675e30a..23f58d59 100644 --- a/old_projects/brachistochrone/light.py +++ b/old_projects/brachistochrone/light.py @@ -60,7 +60,7 @@ class SimplePhoton(PhotonScene): text.to_edge(UP) self.play(ShimmerIn(text)) self.play(self.photon_run_along_path( - Cycloid(), rate_func = None + Cycloid(), rate_func=linear )) self.wait() @@ -350,13 +350,13 @@ class StraightLinesFastestInConstantMedium(PhotonScene): self.play(*list(map(ShimmerIn, [left, arrow, right]))) self.play(ShowCreation(squaggle)) self.play(self.photon_run_along_path( - squaggle, run_time = 2, rate_func = None + squaggle, run_time = 2, rate_func=linear )) self.play(Transform( squaggle, line, path_func = path_along_arc(np.pi) )) - self.play(self.photon_run_along_path(line, rate_func = None)) + self.play(self.photon_run_along_path(line, rate_func=linear)) self.wait() @@ -404,7 +404,7 @@ class PhtonBendsInWater(PhotonScene, ZoomedScene): # self.activate_zooming() self.wait() self.play(ShowPassingFlash( - wave, run_time = 3, rate_func = None + wave, run_time = 3, rate_func=linear )) self.wait() self.play(ShowCreation(extension)) diff --git a/old_projects/brachistochrone/multilayered.py b/old_projects/brachistochrone/multilayered.py index bd584456..c43d5949 100644 --- a/old_projects/brachistochrone/multilayered.py +++ b/old_projects/brachistochrone/multilayered.py @@ -235,7 +235,7 @@ class ShowLayerVariables(MultilayeredScene, PhotonScene): for v_eq, path, time in zip(v_equations, center_paths, [2, 1, 0.5]): photon_run = self.photon_run_along_path( path, - rate_func = None + rate_func=linear ) self.play( FadeToColor(v_eq[0], WHITE), diff --git a/old_projects/brachistochrone/wordplay.py b/old_projects/brachistochrone/wordplay.py index cf11bd24..ca990770 100644 --- a/old_projects/brachistochrone/wordplay.py +++ b/old_projects/brachistochrone/wordplay.py @@ -267,7 +267,7 @@ class CircleOfIdeas(Scene): Transform( word, word.copy().set_color(BLACK).center().scale(0.1), path_func = path_along_arc(np.pi), - rate_func = None, + rate_func=linear, run_time = 2 ) for word in displayed_words @@ -285,7 +285,7 @@ class CircleOfIdeas(Scene): anims.append(ApplyMethod( word.shift, vect, path_func = path_along_arc(angle), - rate_func = None + rate_func=linear )) return anims diff --git a/old_projects/clacks/question.py b/old_projects/clacks/question.py index 7bd6a9c0..99cb4a47 100644 --- a/old_projects/clacks/question.py +++ b/old_projects/clacks/question.py @@ -396,29 +396,29 @@ class NameIntro(Scene): self.play( VFadeIn(blue), VFadeIn(brown), - Restore(brown, rate_func=None), + Restore(brown, rate_func=linear), ) self.play( Flash(blue.get_right(), run_time=flash_time), ApplyMethod( blue.to_edge, LEFT, {"buff": 0}, - rate_func=None, + rate_func=linear, ), ) self.play( Flash(blue.get_left(), run_time=flash_time), - Restore(blue, rate_func=None), + Restore(blue, rate_func=linear), ) self.play( Flash(blue.get_right(), run_time=flash_time), ApplyMethod( brown.to_edge, RIGHT, {"buff": 0}, - rate_func=None, + rate_func=linear, ) ) self.play( Flash(brown.get_right(), run_time=flash_time), - Restore(brown, rate_func=None) + Restore(brown, rate_func=linear) ) @@ -865,7 +865,7 @@ class DigitsOfPi(Scene): self.add(pi_creature, equation[1]) self.play(ShowIncreasingSubsets( equation[2:], - rate_func=None, + rate_func=linear, run_time=1, )) self.play(Blink(pi_creature)) diff --git a/old_projects/clacks/solution1.py b/old_projects/clacks/solution1.py index 682426c3..adb6359d 100644 --- a/old_projects/clacks/solution1.py +++ b/old_projects/clacks/solution1.py @@ -1405,7 +1405,7 @@ class AnalyzeCircleGeometry(CircleDiagramFromSlidingBlocks, MovingCameraScene): axes, axes_labels, circle, end_zone, end_zone_words, ) - self.play(ShowCreation(lines, run_time=3, rate_func=None)) + self.play(ShowCreation(lines, run_time=3, rate_func=linear)) self.wait() self.set_variables_as_attrs( @@ -2111,7 +2111,7 @@ class ComputeThetaFor1e4(AnalyzeCircleGeometry): theta_label.next_to(arc, DOWN, SMALL_BUFF) self.add(end_zone, axes, circle) - self.play(ShowCreation(lines, rate_func=None)) + self.play(ShowCreation(lines, rate_func=linear)) self.play( lines_to_fade.set_stroke, WHITE, 1, 0.3, ShowCreation(arc), diff --git a/old_projects/clacks/solution2/mirror_scenes.py b/old_projects/clacks/solution2/mirror_scenes.py index 84f6f0be..5a0a9cf5 100644 --- a/old_projects/clacks/solution2/mirror_scenes.py +++ b/old_projects/clacks/solution2/mirror_scenes.py @@ -300,7 +300,7 @@ class MirrorScene(Scene): self.play(count_anim, *beam_anims, run_time=run_time) self.disallow_sound() - def get_special_flash(self, mobject, stroke_width, time_width, rate_func=None, **kwargs): + def get_special_flash(self, mobject, stroke_width, time_width, rate_func=linear, **kwargs): kwargs["rate_func"] = rate_func mob_copy = mobject.copy() mob_copy.set_stroke(width=stroke_width) diff --git a/old_projects/clacks/solution2/position_phase_space.py b/old_projects/clacks/solution2/position_phase_space.py index a26fbcfb..0634e3f5 100644 --- a/old_projects/clacks/solution2/position_phase_space.py +++ b/old_projects/clacks/solution2/position_phase_space.py @@ -352,7 +352,7 @@ class PositionPhaseSpaceScene(Scene): # Default kwargs = { "run_time": (distance / ps_speed), - "rate_func": None, + "rate_func": linear, } kwargs.update(added_kwargs) return ApplyMethod( @@ -1049,7 +1049,7 @@ class EqualMassCase(PositionPhaseSpaceScene): ), *flashes, run_time=3, - rate_func=None, + rate_func=linear, ) self.wait() diff --git a/old_projects/crypto.py b/old_projects/crypto.py index 741045e0..9b2070fe 100644 --- a/old_projects/crypto.py +++ b/old_projects/crypto.py @@ -363,7 +363,7 @@ class NoCommentOnSpeculation(TeacherStudentsScene): ) self.play(ShowCreation( graph, run_time = 2, - rate_func = None + rate_func=linear )) self.wait() self.play(ShowCreation(cross)) diff --git a/old_projects/dandelin.py b/old_projects/dandelin.py index 880147b2..e81810c6 100644 --- a/old_projects/dandelin.py +++ b/old_projects/dandelin.py @@ -638,7 +638,7 @@ class EccentricityInThumbtackCase(ShowArrayOfEccentricities): return CycleAnimation(MoveAlongPath( dot, ellipse, run_time=5, - rate_func=None + rate_func=linear )) def get_focal_lines_update(self, ellipse, ellipse_point): @@ -1589,7 +1589,7 @@ class EllipseLengthsLinedUp(EccentricityInThumbtackCase): MoveAlongPath( point, ellipse, run_time=5, - rate_func=None, + rate_func=linear, ) ) diff --git a/old_projects/div_curl.py b/old_projects/div_curl.py index 3f1c5fdf..4a41aac0 100644 --- a/old_projects/div_curl.py +++ b/old_projects/div_curl.py @@ -414,7 +414,7 @@ class StreamLineAnimation(ContinualAnimation): "line_anim_class": ShowPassingFlash, "line_anim_config": { "run_time": 4, - "rate_func": None, + "rate_func": linear, "time_width": 0.3, }, } @@ -4130,7 +4130,7 @@ class DivergenceTinyNudgesView(MovingCameraScene): radians=angle, about_point=point, run_time=15.0 / n_samples, - rate_func=None, + rate_func=linear, ) ) step_vector_copy = moving_step_vector.copy() @@ -4516,7 +4516,7 @@ class BroughtToYouBy(PiCreatureScene): ) self.look_at(math) self.play( - ShowCreation(spiral, run_time=6, rate_func=None), + ShowCreation(spiral, run_time=6, rate_func=linear), math.scale, 0.5, math.shift, 3 * UP, randy.change, "thinking", diff --git a/old_projects/domino_play.py b/old_projects/domino_play.py index c3aac42e..b045989b 100644 --- a/old_projects/domino_play.py +++ b/old_projects/domino_play.py @@ -581,11 +581,11 @@ class ContrastTwoGraphs(SimpleVelocityGraph): hardwood.next_to(graph2, LEFT, buff = 0.75) self.play( - ShowCreation(graph1, run_time = 3, rate_func = None), + ShowCreation(graph1, run_time = 3, rate_func=linear), Write(felt) ) self.play( - ShowCreation(graph2, run_time = 4, rate_func = None), + ShowCreation(graph2, run_time = 4, rate_func=linear), Write(hardwood) ) self.wait() diff --git a/old_projects/efvgt.py b/old_projects/efvgt.py index 0ea307d3..03faf33e 100644 --- a/old_projects/efvgt.py +++ b/old_projects/efvgt.py @@ -127,7 +127,7 @@ class Anniversary(TeacherStudentsScene): DrawBorderThenFill( hats, submobject_mode = "lagged_start", - rate_func = None, + rate_func=linear, run_time = 2, ), *confetti_spirils + [ @@ -137,7 +137,7 @@ class Anniversary(TeacherStudentsScene): ApplyMethod(pi.look, UP+RIGHT), Animation(pi), ApplyMethod(pi.look_at, first_video), - rate_func = None + rate_func=linear ) for pi in self.get_students() ] + [ @@ -146,7 +146,7 @@ class Anniversary(TeacherStudentsScene): Blink(self.get_teacher()), Animation(self.get_teacher(), run_time = 2), ApplyMethod(self.get_teacher().change_mode, "raise_right_hand"), - rate_func = None + rate_func=linear ), DrawBorderThenFill( first_video, diff --git a/old_projects/eoc/chapter1.py b/old_projects/eoc/chapter1.py index 7ba7eadb..cb65475f 100644 --- a/old_projects/eoc/chapter1.py +++ b/old_projects/eoc/chapter1.py @@ -1797,7 +1797,7 @@ class ExampleIntegralProblems(PiCreatureScene, GraphScene): FadeIn( ticks, submobject_mode = "one_at_a_time", - rate_func = None, + rate_func=linear, ), ShowCreation(line), FadeIn( diff --git a/old_projects/eoc/chapter10.py b/old_projects/eoc/chapter10.py index 7f41998a..38a6150d 100644 --- a/old_projects/eoc/chapter10.py +++ b/old_projects/eoc/chapter10.py @@ -197,7 +197,7 @@ class Pendulum(ReconfigurableScene): self.play( ShowCreation( trajectory_dots, - rate_func = None, + rate_func=linear, run_time = kwargs["run_time"] ), Rotate(self.pendulum, -2*self.angle, **kwargs), diff --git a/old_projects/eoc/chapter2.py b/old_projects/eoc/chapter2.py index c3d8a5b3..602976db 100644 --- a/old_projects/eoc/chapter2.py +++ b/old_projects/eoc/chapter2.py @@ -352,7 +352,7 @@ class GraphCarTrajectory(GraphScene): self.play( ShowCreation( graph, - rate_func = None, + rate_func=linear, ), MoveCar( car, car_target, @@ -2114,7 +2114,7 @@ class ParadoxAtTEquals0(TCubedExample): car, car_target_point, rate_func = lambda t : (t*graph_x_max)**3 ), - ShowCreation(graph, rate_func = None), + ShowCreation(graph, rate_func=linear), UpdateFromFunc(h_line, h_line_update), UpdateFromFunc(v_line, v_line_update), run_time = 5 diff --git a/old_projects/eoc/chapter3.py b/old_projects/eoc/chapter3.py index cdcc1c51..ffc0ea85 100644 --- a/old_projects/eoc/chapter3.py +++ b/old_projects/eoc/chapter3.py @@ -167,7 +167,7 @@ class ContrastAbstractAndConcrete(Scene): )) exp += 1 - return Succession(*anims, rate_func = None) + return Succession(*anims, rate_func=linear) class ApplicationNames(Scene): def construct(self): @@ -2307,14 +2307,14 @@ class IntroduceUnitCircleWithSine(GraphScene): ShowCreation(filler_arc), UpdateFromFunc(v_line, v_line_update), run_time = filler_portion/self.rotations_per_second, - rate_func = None, + rate_func=linear, ) for x in range(5): self.play( Rotate(radial_line, 2*np.pi), UpdateFromFunc(v_line, v_line_update), run_time = 1./self.rotations_per_second, - rate_func = None, + rate_func=linear, ) ############## @@ -2361,7 +2361,7 @@ class DerivativeIntuitionFromSineGraph(GraphScene): ShowCreation(graph), UpdateFromFunc(v_line, lambda v : self.v_line_update(v, graph)), run_time = 2./rps, - rate_func = None + rate_func=linear ) self.wait() self.graph = graph diff --git a/old_projects/eoc/chapter4.py b/old_projects/eoc/chapter4.py index f2d8e2bd..49afe937 100644 --- a/old_projects/eoc/chapter4.py +++ b/old_projects/eoc/chapter4.py @@ -237,7 +237,7 @@ class DampenedSpring(Scene): self.add(moving_spring, equation) self.play(UpdateFromAlphaFunc( moving_spring, update_spring, run_time = 10, - rate_func = None + rate_func=linear )) self.wait() diff --git a/old_projects/eoc/chapter5.py b/old_projects/eoc/chapter5.py index aa3a4fc4..ed6b30d8 100644 --- a/old_projects/eoc/chapter5.py +++ b/old_projects/eoc/chapter5.py @@ -1704,7 +1704,7 @@ class TemperatureOverTimeOfWarmWater(GraphScene): ) if self.include_solution: self.play(Write(solution)) - graph_growth = ShowCreation(graph, rate_func = None) + graph_growth = ShowCreation(graph, rate_func=linear) delta_T_group_update = UpdateFromFunc( delta_T_group, update_delta_T_group ) diff --git a/old_projects/eoc/chapter7.py b/old_projects/eoc/chapter7.py index 9efe94e0..118c3f63 100644 --- a/old_projects/eoc/chapter7.py +++ b/old_projects/eoc/chapter7.py @@ -1871,7 +1871,7 @@ class LHopitalExample(LimitCounterExample, PiCreatureScene, ZoomedScene, Reconfi self.play(ShowCreation( graph, run_time = 3, - rate_func = None + rate_func=linear )) self.wait(4) ## Overly oscillation self.play(ShowCreation(colored_graph, run_time = 2)) diff --git a/old_projects/eoc/chapter8.py b/old_projects/eoc/chapter8.py index c5a52bac..9fce8daa 100644 --- a/old_projects/eoc/chapter8.py +++ b/old_projects/eoc/chapter8.py @@ -257,7 +257,7 @@ class PlotVelocity(GraphScene): self.play(DrawBorderThenFill( speedometer, submobject_mode = "lagged_start", - rate_func = None, + rate_func=linear, )) self.speedometer = speedometer @@ -294,7 +294,7 @@ class PlotVelocity(GraphScene): self.play( Succession( - *dot_intro_anims, rate_func = None + *dot_intro_anims, rate_func=linear ), ApplyMethod( self.speedometer.move_needle_to_velocity, @@ -536,7 +536,7 @@ class ConstantVelocityCar(Scene): self.play(MoveCar( car, 7*RIGHT+3*DOWN, run_time = 5, - rate_func = None, + rate_func=linear, )) self.wait() @@ -561,7 +561,7 @@ class ConstantVelocityPlot(PlotVelocity): color = VELOCITY_COLOR ) - self.play(ShowCreation(graph, rate_func = None, run_time = 3)) + self.play(ShowCreation(graph, rate_func=linear, run_time = 3)) self.wait() self.graph = graph @@ -713,7 +713,7 @@ class PiecewiseConstantCar(Scene): car.randy.rotate_in_place(np.pi/8) anim = MoveCar( car, start_point+shift*RIGHT, - rate_func = None + rate_func=linear ) anim.target_mobject[0].rotate_in_place(-np.pi/8) @@ -1574,7 +1574,7 @@ class AreaIsDerivative(PlotVelocity, ReconfigurableScene): self.change_area_bounds(new_t_max = 0, run_time = 2) self.change_area_bounds( new_t_max = 8, - rate_func = None, + rate_func=linear, run_time = 7.9, ) self.wait() diff --git a/old_projects/eoc/chapter9.py b/old_projects/eoc/chapter9.py index 1ae5f3cb..e30ffb61 100644 --- a/old_projects/eoc/chapter9.py +++ b/old_projects/eoc/chapter9.py @@ -228,7 +228,7 @@ class LengthOfDayGraph(GraphScene): submobject_mode = "lagged_start" )) self.play( - ShowCreation(graph, rate_func = None), + ShowCreation(graph, rate_func=linear), FadeIn( graph_label, rate_func = squish_rate_func(smooth, 0.5, 1), diff --git a/old_projects/eoc/old_chapter1.py b/old_projects/eoc/old_chapter1.py index ec4bab66..8ccd2a3f 100644 --- a/old_projects/eoc/old_chapter1.py +++ b/old_projects/eoc/old_chapter1.py @@ -1063,7 +1063,7 @@ class BuildToDADR(CircleScene): self.nudge_arrow, ] ], - rate_func = None, + rate_func=linear, run_time = 7 ) self.play(self.pi_creature.change_mode, "hooray") diff --git a/old_projects/eola/chapter5.py b/old_projects/eola/chapter5.py index 6b9bc733..59053725 100644 --- a/old_projects/eola/chapter5.py +++ b/old_projects/eola/chapter5.py @@ -653,7 +653,7 @@ class SlowlyRotateIHat(LinearTransformationScene): [[-1, 0], [0, 1]], path_arc = np.pi, run_time = 30, - rate_func = None, + rate_func=linear, ) class DeterminantGraphForRotatingIHat(Scene): @@ -687,7 +687,7 @@ class DeterminantGraphForRotatingIHat(Scene): self.add(axes, det_word, time_word) self.play(ShowCreation( - graph, rate_func = None, run_time = 10 + graph, rate_func=linear, run_time = 10 )) class WhatAboutThreeDimensions(TeacherStudentsScene): @@ -811,7 +811,7 @@ class RightHandRule(Scene): # self.add(NumberPlane()) self.play( - ShowCreation(hand.outline, run_time = 2, rate_func = None), + ShowCreation(hand.outline, run_time = 2, rate_func=linear), FadeIn(hand.inlines) ) self.wait() diff --git a/old_projects/fourier.py b/old_projects/fourier.py index dbebf759..8dbcf8d0 100644 --- a/old_projects/fourier.py +++ b/old_projects/fourier.py @@ -233,7 +233,7 @@ class AddingPureFrequencies(PiCreatureScene): ShowCreation(axes.x_axis) ) self.broadcast( - ShowCreation(graph, run_time = 4, rate_func = None), + ShowCreation(graph, run_time = 4, rate_func=linear), ShowCreation(equilibrium_line), ) axes.add(equilibrium_line) @@ -272,7 +272,7 @@ class AddingPureFrequencies(PiCreatureScene): GrowFromCenter(D_label), ) self.broadcast( - ShowCreation(graph, run_time = 4, rate_func = None), + ShowCreation(graph, run_time = 4, rate_func=linear), randy.change, "happy", n_circles = 6, ) @@ -290,7 +290,7 @@ class AddingPureFrequencies(PiCreatureScene): self.get_broadcast_animation(n_circles = 6), self.pi_creature.change, "thinking", *[ - ShowCreation(graph, run_time = 4, rate_func = None) + ShowCreation(graph, run_time = 4, rate_func=linear) for graph in (self.A_graph, self.D_graph) ] ) @@ -406,7 +406,7 @@ class AddingPureFrequencies(PiCreatureScene): self.get_graph_line_animation(axes, sum_graph.deepcopy()), ShowCreation(sum_graph), run_time = 15, - rate_func = None + rate_func=linear ) self.remove(thin_sum_graph) self.wait() @@ -596,7 +596,7 @@ class BreakApartSum(Scene): v_line.move_to, axes.coords_to_point(5, 0), DOWN, MoveAlongPath(dot, graph), run_time = 8, - rate_func = None, + rate_func=linear, ) self.play(*list(map(FadeOut, [dot, v_line]))) @@ -719,7 +719,7 @@ class UnmixMixedPaint(Scene): UpdateFromAlphaFunc(quadrant, update_quadrant) for quadrant in quadrants ] + [ - ApplyMethod(mud_circle.restore, rate_func = None) + ApplyMethod(mud_circle.restore, rate_func=linear) ], run_time = run_time ) @@ -1121,7 +1121,7 @@ class WrapCosineGraphAroundCircle(FourierMachineScene): words.next_to(axes.coords_to_point(1.5, 0), DOWN, MED_LARGE_BUFF) self.add(axes) - self.play(ShowCreation(graph, run_time = 2, rate_func = None)) + self.play(ShowCreation(graph, run_time = 2, rate_func=linear)) self.play( FadeIn(words), LaggedStart(FadeIn, braces), @@ -1541,7 +1541,7 @@ class DrawFrequencyPlot(WrapCosineGraphAroundCircle, PiCreatureScene): self.wait() self.remove(self.fourier_graph_dot) self.generate_fourier_dot_transform(new_fourier_graph) - self.change_frequency(3.0, run_time = 15, rate_func = None) + self.change_frequency(3.0, run_time = 15, rate_func=linear) self.wait() self.play( graph.restore, @@ -2569,7 +2569,7 @@ class ApplyFourierToFourier(DrawFrequencyPlot): run_time = 0.2, ) ) - self.change_frequency(5.0, run_time = 15, rate_func = None) + self.change_frequency(5.0, run_time = 15, rate_func=linear) self.wait() ## @@ -3520,7 +3520,7 @@ class ScaleUpCenterOfMass(WriteComplexExponentialExpression): self.change_frequency(2.5, added_anims = [new_com_vector_update], run_time = 20, - rate_func = None, + rate_func=linear, ) self.wait() @@ -3556,7 +3556,7 @@ class SimpleCosineWrappingAroundCircle(WriteComplexExponentialExpression): self.change_frequency( 2.0, - rate_func = None, + rate_func=linear, run_time = 30 ) self.wait() @@ -3766,7 +3766,7 @@ class SummarizeTheFullTransform(DrawFrequencyPlot): self.generate_fourier_dot_transform(fourier_graph) self.change_frequency( 5.0, - rate_func = None, + rate_func=linear, run_time = winding_run_time, added_anims = [ g_hat_f_indication, diff --git a/old_projects/hanoi.py b/old_projects/hanoi.py index ebab8e59..2f8bd348 100644 --- a/old_projects/hanoi.py +++ b/old_projects/hanoi.py @@ -1830,7 +1830,7 @@ class ShowFourDiskFourBitsParallel(IntroduceSolveByCounting): self.get_increment_animation() for x in range(num_tasks) ]), - rate_func = None, + rate_func=linear, run_time = self.subtask_run_time ) @@ -3151,7 +3151,7 @@ class ShowPathThroughGraph(SierpinskiGraphScene): self.wait() self.play(ShowCreation( arrows, - rate_func = None, + rate_func=linear, run_time = 5 )) self.wait(2) @@ -3286,7 +3286,7 @@ class ShowSierpinskiCurvesOfIncreasingOrder(Scene): self.add(graph) self.wait() - self.play(ShowCreation(path, run_time = 3, rate_func = None)) + self.play(ShowCreation(path, run_time = 3, rate_func=linear)) self.wait() self.play(graph.fade, 0.5, Animation(path)) for other_graph in graphs[1:]: diff --git a/old_projects/highD.py b/old_projects/highD.py index a3c8afb0..aebb5084 100644 --- a/old_projects/highD.py +++ b/old_projects/highD.py @@ -3193,7 +3193,7 @@ class ProportionOfSphereInBox(GraphScene): ) footnote.set_color(YELLOW) - self.play(ShowCreation(graph, run_time = 5, rate_func = None)) + self.play(ShowCreation(graph, run_time = 5, rate_func=linear)) self.wait() self.add(footnote) self.wait(0.25) diff --git a/old_projects/hilbert/section1.py b/old_projects/hilbert/section1.py index b40a72ed..0d734a34 100644 --- a/old_projects/hilbert/section1.py +++ b/old_projects/hilbert/section1.py @@ -623,7 +623,7 @@ class WeaveLineThroughPixels(Scene): self.play(ShowCreation( curve, run_time = 5, - rate_func = None + rate_func=linear )) self.wait() self.play( @@ -647,7 +647,7 @@ class WellPlayedGameOfSnake(Scene): self.play(ShowCreation( snake_curve, run_time = 7, - rate_func = None + rate_func=linear )) self.wait() self.play(ShimmerIn(words)) @@ -885,7 +885,7 @@ class UseOrder8(Scene): self.clear() self.add(words) self.play(ShowCreation( - curve, run_time = 7, rate_func = None + curve, run_time = 7, rate_func=linear )) self.wait() diff --git a/old_projects/hilbert/section2.py b/old_projects/hilbert/section2.py index f1007a20..d3844fa1 100644 --- a/old_projects/hilbert/section2.py +++ b/old_projects/hilbert/section2.py @@ -132,7 +132,7 @@ class TimeLineAboutSpaceFilling(Scene): self.play(ShowCreation( curve, run_time = 5, - rate_func = None + rate_func=linear )) self.wait() @@ -1002,7 +1002,7 @@ class TilingSpace(Scene): all_curves.thin_out(10) self.play(ShowCreation( all_curves, - rate_func = None, + rate_func=linear, run_time = 15 )) diff --git a/old_projects/leibniz.py b/old_projects/leibniz.py index 5c8a0e6a..6526267d 100644 --- a/old_projects/leibniz.py +++ b/old_projects/leibniz.py @@ -4195,7 +4195,7 @@ class CountLatticePointsInBigCircle(LatticePointScene): self.play( ApplyMethod( VGroup(self.circle, self.radius).scale_in_place, 2, - rate_func = None, + rate_func=linear, ), LaggedStart( DrawBorderThenFill, diff --git a/old_projects/lost_lecture.py b/old_projects/lost_lecture.py index 74873dc6..e216d613 100644 --- a/old_projects/lost_lecture.py +++ b/old_projects/lost_lecture.py @@ -77,7 +77,7 @@ class SunAnimation(ContinualAnimation): class ShowWord(Animation): CONFIG = { "time_per_char": 0.06, - "rate_func": None, + "rate_func": linear, } def __init__(self, word, **kwargs): @@ -2456,7 +2456,7 @@ class AngularMomentumArgument(KeplersSecondLaw): ), ApplyMethod( comet.move_to, comet_end, - rate_func=None, + rate_func=linear, ), run_time=2, ) @@ -3169,14 +3169,14 @@ class ShowEqualAngleSlices(IntroduceShapeOfVelocities): Animation(foreground), frame.scale, 1.2, ) - self.play(MoveAlongPath(comet, arc1, rate_func=None)) + self.play(MoveAlongPath(comet, arc1, rate_func=linear)) self.play( Write(words2), wedge2.set_fill, {"opacity": 1}, Write(arrow2), Animation(foreground), ) - self.play(MoveAlongPath(comet, arc2, rate_func=None, run_time=3)) + self.play(MoveAlongPath(comet, arc2, rate_func=linear, run_time=3)) self.wait() self.area_questions = VGroup(words1, words2) diff --git a/old_projects/music_and_measure.py b/old_projects/music_and_measure.py index 853d6187..95459729 100644 --- a/old_projects/music_and_measure.py +++ b/old_projects/music_and_measure.py @@ -518,7 +518,7 @@ class DecomposeTwoFrequencies(Scene): self.play(ApplyMethod( comp.shift, 15*LEFT, run_time = 7.5, - rate_func = None + rate_func=linear )) @@ -701,7 +701,7 @@ class PianoTuning(Scene): FadeIn(twelfth_root) ) self.wait() - self.play(ShowCreation(semicircles, rate_func = None)) + self.play(ShowCreation(semicircles, rate_func=linear)) self.wait() self.show_interval(5, 7) @@ -917,7 +917,7 @@ class CoveringSetsWithOpenIntervals(IntervalScene): self.wait() for x in range(2*len(theorems)): self.play(*[ - ApplyMethod(th.shift, UP, rate_func = None) + ApplyMethod(th.shift, UP, rate_func=linear) for th in theorems[:x+1] ]) diff --git a/old_projects/nn/part1.py b/old_projects/nn/part1.py index a560efeb..8ba506a8 100644 --- a/old_projects/nn/part1.py +++ b/old_projects/nn/part1.py @@ -671,7 +671,7 @@ class LayOutPlan(TeacherStudentsScene, NetworkScene): submobject_mode = "lagged_start", run_time = 2, lag_factor = 8, - rate_func = None, + rate_func=linear, )) in_vect = np.random.random(self.network.sizes[0]) self.feed_forward(in_vect) @@ -2353,7 +2353,7 @@ class IntroduceWeights(IntroduceEachLayer): self.play( *changing_decimals + pixel_updates, run_time = 5, - rate_func = None + rate_func=linear ) self.question = question diff --git a/old_projects/nn/part2.py b/old_projects/nn/part2.py index b9760ab7..0e5ed7c0 100644 --- a/old_projects/nn/part2.py +++ b/old_projects/nn/part2.py @@ -214,7 +214,7 @@ class PreviewLearning(NetworkScene): VGroup(*layers), VGroup(*active_layers), run_time = run_time, submobject_mode = "lagged_start", - rate_func = None, + rate_func=linear, ) self.play(edge_animation, layer_animation, *added_anims) @@ -3659,13 +3659,13 @@ class CompareLearningCurves(GraphScene): self.play(ShowCreation( slow_decrease, run_time = 12, - rate_func = None, + rate_func=linear, )) self.play(FadeIn(fast_label), ShowCreation(fast_line)) self.play(ShowCreation( faster_decrease, run_time = 12, - rate_func = None, + rate_func=linear, )) self.wait() diff --git a/old_projects/patreon.py b/old_projects/patreon.py index 08e1f040..495b9c1a 100644 --- a/old_projects/patreon.py +++ b/old_projects/patreon.py @@ -657,7 +657,7 @@ class IntegrationByParts(Scene): ), MaintainPositionRelativeTo(coords, dot), run_time = 5, - rate_func = None + rate_func=linear ) self.wait() self.play(*list(map(FadeOut, [coords, dot]))) diff --git a/old_projects/quaternions.py b/old_projects/quaternions.py index f29ae338..921455c1 100644 --- a/old_projects/quaternions.py +++ b/old_projects/quaternions.py @@ -4061,7 +4061,7 @@ class ShowRotationsJustWithReferenceCircles(TwoDStereographicProjection): self.add(pcij) # About j-axis - self.play(ShowCreation(arrows, run_time=3, rate_func=None)) + self.play(ShowCreation(arrows, run_time=3, rate_func=linear)) self.wait(3) for x in range(2): y_axis.pieces.set_stroke(width=1) diff --git a/old_projects/tattoo.py b/old_projects/tattoo.py index b1090a81..48c5f0c7 100644 --- a/old_projects/tattoo.py +++ b/old_projects/tattoo.py @@ -294,7 +294,7 @@ class ExplainTrigFunctionDistances(TrigRepresentationsScene, PiCreatureScene): )) self.play(Succession( *[ - Transform(mover, target, rate_func = None) + Transform(mover, target, rate_func=linear) for target in targets ], run_time = 5, @@ -373,7 +373,7 @@ class ExplainTrigFunctionDistances(TrigRepresentationsScene, PiCreatureScene): )) self.play(Succession( *[ - Transform(mover, target, rate_func = None) + Transform(mover, target, rate_func=linear) for target in targets ], run_time = 5, @@ -461,7 +461,7 @@ class ExplainTrigFunctionDistances(TrigRepresentationsScene, PiCreatureScene): )) self.play(Succession( *[ - Transform(mover, target, rate_func = None) + Transform(mover, target, rate_func=linear) for target in targets ], run_time = 5, diff --git a/old_projects/uncertainty.py b/old_projects/uncertainty.py index 354c0af4..7e792571 100644 --- a/old_projects/uncertainty.py +++ b/old_projects/uncertainty.py @@ -765,7 +765,7 @@ class TwoCarsAtRedLight(Scene): self.play( self.get_flashes(car1, num_flashes = 3), self.get_flashes(car2, num_flashes = 3), - ShowCreation(graph, rate_func = None, run_time = 3) + ShowCreation(graph, rate_func=linear, run_time = 3) ) self.play( self.get_flashes(car1, num_flashes = 10), @@ -892,7 +892,7 @@ class TwoCarsAtRedLight(Scene): ShowCreation( new_time_graph, run_time = n_spikes, - rate_func = None, + rate_func=linear, ), ApplyMethod( frequency_graph.stretch, 0.1, 0, @@ -1000,7 +1000,7 @@ class VariousMusicalNotes(Scene): phrase.next_to(brace, UP) if width is widths[0]: - self.play(ShowCreation(graph, rate_func = None)), + self.play(ShowCreation(graph, rate_func=linear)), self.play( GrowFromCenter(brace), Write(phrase, run_time = 1) @@ -1508,8 +1508,8 @@ class LongAndShortSignalsInWindingMachine(FourierRecapScene): FadeOut(fourier_graph) ) self.play( - ShowCreation(long_time_graph, rate_func = None), - ShowCreation(long_pol_graph, rate_func = None), + ShowCreation(long_time_graph, rate_func=linear), + ShowCreation(long_pol_graph, rate_func=linear), run_time = 5 ) self.wait() @@ -1759,7 +1759,7 @@ class IntroduceDopplerRadar(Scene): graph_draw = NormalAnimationAsContinualAnimation( ShowCreation( sum_graph, - rate_func = None, + rate_func=linear, run_time = 0.97*axes.x_max ) ) @@ -1831,7 +1831,7 @@ class IntroduceDopplerRadar(Scene): echo_subtext.match_color(echo_graph) graph_draw = NormalAnimationAsContinualAnimation( - ShowCreation(sum_graph, run_time = 8, rate_func = None) + ShowCreation(sum_graph, run_time = 8, rate_func=linear) ) pulse = RadarPulse(dish, plane, n_pulse_singletons = 12) plane_flight = ContinualMovement( @@ -2400,7 +2400,7 @@ class AmbiguityInLongEchos(IntroduceDopplerRadar, PiCreatureScene): self.wait() squished_rate_func = squish_rate_func(smooth, 0.6, 0.9) self.play( - ShowCreation(pulse_graph, rate_func = None), + ShowCreation(pulse_graph, rate_func=linear), GrowFromCenter(brace, rate_func = squished_rate_func), Write(words, rate_func = squished_rate_func), run_time = 3, @@ -2470,7 +2470,7 @@ class AmbiguityInLongEchos(IntroduceDopplerRadar, PiCreatureScene): self.play( ShowCreation( sum_graph, - rate_func = None, + rate_func=linear, run_time = 3.5, ), randy.change, "confused" @@ -2517,7 +2517,7 @@ class AmbiguityInLongEchos(IntroduceDopplerRadar, PiCreatureScene): self.play( ShowCreation( sum_graph, - rate_func = None, + rate_func=linear, run_time = 3.5, ), randy.change, "happy" @@ -2970,7 +2970,7 @@ class IntroduceDeBroglie(Scene): self.play( ApplyMethod( particle.move_to, axes.coords_to_point(22, 0), - rate_func = None + rate_func=linear ), wave_update_animation, run_time = 3 @@ -3086,13 +3086,13 @@ class ShowMomentumFormula(IntroduceDeBroglie, TeacherStudentsScene): ApplyMethod(particle.move_to, axes.coords_to_point(30, 0)), wave_update_animation, run_time = 4, - rate_func = None, + rate_func=linear, ) stopped_wave_propagation = AnimationGroup( ApplyMethod(particle.move_to, xi_words), wave_update_animation, run_time = 3, - rate_func = None, + rate_func=linear, ) n_v_lines = 10 v_lines = VGroup(*[ @@ -3972,7 +3972,7 @@ class MusicalNote(AddingPureFrequencies): randy.change, "pondering", self.get_broadcast_animation(n_circles = 6, run_time = 5), self.get_broadcast_animation(n_circles = 12, run_time = 5), - ShowCreation(graph, run_time = 5, rate_func = None), + ShowCreation(graph, run_time = 5, rate_func=linear), v_line_update ) self.wait(2) diff --git a/old_projects/wallis.py b/old_projects/wallis.py index 7eb62ac6..c3b646b1 100644 --- a/old_projects/wallis.py +++ b/old_projects/wallis.py @@ -542,7 +542,7 @@ class ShowProduct(Scene): position_update_func=lambda m: m.next_to(brace, DOWN) ), run_time=4, - rate_func=None, + rate_func=linear, ) self.play( FadeOut(brace), @@ -620,7 +620,7 @@ class ShowProduct(Scene): ShowCreation(lines), LaggedStart(FadeIn, dots, lag_ratio=0.1), run_time=3, - rate_func=None, + rate_func=linear, ) self.wait(2) self.play(FadeOut(VGroup(dots, lines))) diff --git a/old_projects/waves.py b/old_projects/waves.py index 3c26ae15..46486c0f 100644 --- a/old_projects/waves.py +++ b/old_projects/waves.py @@ -767,7 +767,7 @@ class IntroduceMagneticField(IntroduceElectricField, ThreeDScene): self.play( particle.restore, run_time = 2, - rate_func = None, + rate_func=linear, ) self.add(velocity) self.play(Write(velocity_word, run_time = 0.5)) @@ -871,7 +871,7 @@ class CurlRelationBetweenFields(ThreeDScene): self.wait() self.move_camera(0.8*np.pi/2, -0.45*np.pi) self.begin_ambient_camera_rotation() - self.play(M_vect.restore, run_time = 3, rate_func = None) + self.play(M_vect.restore, run_time = 3, rate_func=linear) self.wait(3) self.E_vects = E_vects @@ -902,7 +902,7 @@ class CurlRelationBetweenFields(ThreeDScene): E_vect.rotate, np.pi, RIGHT, [], new_point, E_vect.scale_about_point, 3, new_point, run_time = 4, - rate_func = None, + rate_func=linear, ) self.wait() @@ -928,7 +928,7 @@ class CurlRelationBetweenFields(ThreeDScene): self.play( M_vect.rotate, np.pi, RIGHT, [], point, run_time = 5, - rate_func = None, + rate_func=linear, ) self.wait(3) @@ -1300,7 +1300,7 @@ class ShowVectorEquation(Scene): self.add(new_ov) self.play(ShowCreation( high_f_graph, run_time = 4, - rate_func = None, + rate_func=linear, )) self.wait() self.play(FadeOut(new_ov.vector)) diff --git a/old_projects/wcat.py b/old_projects/wcat.py index 0385e532..c1fd8df2 100644 --- a/old_projects/wcat.py +++ b/old_projects/wcat.py @@ -425,7 +425,7 @@ class DefineInscribedSquareProblem(ClosedLoopScene): self.play(ShowCreation( self.loop, run_time = 5, - rate_func = None + rate_func=linear )) self.wait() self.add_rect_dots(square = True) diff --git a/old_projects/zeta.py b/old_projects/zeta.py index debaee77..d6e6d985 100644 --- a/old_projects/zeta.py +++ b/old_projects/zeta.py @@ -2070,7 +2070,7 @@ class SquiggleOnExtensions(ZetaTransformationScene): self.play(ShowCreation( self.left_plane, run_time = 5, - rate_func = None + rate_func=linear )) self.wait() @@ -2954,7 +2954,7 @@ class DiscussZeros(ZetaTransformationScene): full_line.set_color_by_gradient( YELLOW, BLUE, GREEN, RED, YELLOW, BLUE, GREEN, RED, ) - self.play(ShowCreation(full_line, run_time = 20, rate_func = None)) + self.play(ShowCreation(full_line, run_time = 20, rate_func=linear)) self.wait() class AskAboutRelationToPrimes(TeacherStudentsScene):