diff --git a/from_3b1b/active/diffyq/part2/fourier_series.py b/from_3b1b/active/diffyq/part2/fourier_series.py index b734e7d3..8ca76b28 100644 --- a/from_3b1b/active/diffyq/part2/fourier_series.py +++ b/from_3b1b/active/diffyq/part2/fourier_series.py @@ -372,18 +372,18 @@ class FourierOfPiSymbol(FourierCirclesScene): return path -class FourierOfName(FourierOfPiSymbol, MovingCameraScene): +class FourierOfTexPaths(FourierOfPiSymbol, MovingCameraScene): CONFIG = { "n_vectors": 100, "name_color": WHITE, - "name_text": "Abc", + "animated_name": "Abc", "time_per_symbol": 5, "slow_factor": 1 / 5, "parametric_function_step_size": 0.01, } def construct(self): - name = TextMobject(self.name_text) + name = TextMobject(self.animated_name) max_width = FRAME_WIDTH - 2 max_height = FRAME_HEIGHT - 2 name.set_width(max_width) diff --git a/from_3b1b/old/name_animation.py b/from_3b1b/old/name_animation.py deleted file mode 100644 index 7114cabe..00000000 --- a/from_3b1b/old/name_animation.py +++ /dev/null @@ -1,110 +0,0 @@ -#!/usr/bin/env python2 -# -*- coding: utf-8 -*- - - -from manimlib.imports import * - -NAME_WITH_SPACES = "Prime Meridian" -DIAMETER = 3.0 -RADIUS = DIAMETER / 2 -LETTER_SCALE = 1 - - -class NameAnimationScene(Scene): - CONFIG = { - "animated_name": "Prime Meridian" - } - - def construct(self): - name = self.animated_name - letter_mobs = TextMobject(name) - nb_letters = len(letter_mobs) - randy = PiCreature() - randy.move_to(ORIGIN).set_height(0.5 * DIAMETER) - randy.set_color(BLUE_E) - randy.look_at(UP + RIGHT) - self.add(randy) - dtheta = TAU / nb_letters - angles = np.arange(TAU / 4, -3 * TAU / 4, -dtheta) - name_mob = VGroup() - for (letter_mob, angle) in zip(letter_mobs, angles): - letter_mob.scale(LETTER_SCALE) - pos = RADIUS * np.cos(angle) * RIGHT + RADIUS * np.sin(angle) * UP - letter_mob.move_to(pos) - name_mob.add(letter_mob) - - pos2 = RADIUS * np.cos(angles[2]) * RIGHT + \ - RADIUS * np.sin(angles[2]) * UP - - times_n_label = VGroup( - TexMobject("\\times"), - Integer(1) - ) - times_n_label.arrange(RIGHT) - times_n_label.shift(FRAME_WIDTH * RIGHT / 4) - times_n_label.to_edge(UP) - - self.play( - LaggedStartMap(FadeIn, name_mob, run_time=3), - ApplyMethod(randy.change, "pondering", pos2, run_time=1), - FadeIn(times_n_label) - ) - - for n in range(2, nb_letters + 2): - - group = [] - - for (j, letter_mob) in enumerate(name_mob.submobjects): - - new_angle = TAU / 4 - n * j * dtheta - new_pos = RADIUS * np.cos(new_angle) * \ - RIGHT + RADIUS * np.sin(new_angle) * UP - letter_mob.target = letter_mob.copy().move_to(new_pos) - anim = MoveToTarget(letter_mob, path_arc=- j * dtheta) - group.append(anim) - new_n = Integer(n) - new_n.move_to(times_n_label[1]) - self.play( - AnimationGroup(*group, run_time=3), - UpdateFromFunc(randy, lambda r: r.look_at(name_mob.submobjects[2])), - FadeOut(times_n_label[1]), - FadeIn(new_n) - ) - times_n_label.submobjects[1] = new_n - self.wait(0.5) - - thank_you = TextMobject("Thank You!").next_to(randy, DOWN) - new_randy = randy.copy() - new_randy.change("hooray") - new_randy.set_color(BLUE_E) - new_randy.look_at(ORIGIN) - self.play( - ReplacementTransform(name_mob, VGroup(*thank_you)), - Transform(randy, new_randy) - ) - self.play(Blink(randy)) - - def __str__(self): - return self.animated_name.replace(" ", "") + "Animation" - - -names = [ - "Happy 18th Birthday\\\\Pranavi Hiremath!" -] - -if __name__ == "__main__": - for name in names: - try: - NameAnimationScene( - frame_duration=PRODUCTION_QUALITY_FRAME_DURATION, - camera_config=PRODUCTION_QUALITY_CAMERA_CONFIG, - animated_name=name, - write_to_movie=True, - output_directory=os.path.join( - VIDEO_DIR, - "active_projects", - "name_animations", - ), - ) - except Exception as e: - print("Could not animate %s: %s" % (name, e))