From 9c45f041b4702c28767117c129ce3a09ae1863ac Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Sun, 24 May 2020 17:44:29 +0530 Subject: Added Multivariable Function folder --- .../multivariable_func_derivative_vectorvf.py | 247 +++++++++++++++++++++ .../multivariable_func_examples.py | 69 ++++++ .../multivariable_func_plot_sphere.py | 42 ++++ .../multivariable_func_respresntation.py | 80 +++++++ .../multivariable_func_vectorvf_sine.py | 91 ++++++++ 5 files changed, 529 insertions(+) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/Multivariable Functions/multivariable_func_derivative_vectorvf.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/Multivariable Functions/multivariable_func_examples.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/Multivariable Functions/multivariable_func_plot_sphere.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/Multivariable Functions/multivariable_func_respresntation.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/Multivariable Functions/multivariable_func_vectorvf_sine.py (limited to 'FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/Multivariable Functions') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/Multivariable Functions/multivariable_func_derivative_vectorvf.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/Multivariable Functions/multivariable_func_derivative_vectorvf.py new file mode 100644 index 0000000..466e389 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/Multivariable Functions/multivariable_func_derivative_vectorvf.py @@ -0,0 +1,247 @@ +from manimlib.imports import * + +class Derivative(GraphScene): + CONFIG = { + "x_min": 0, + "x_max": 3, + "y_min": 0, + "y_max": 5, + "graph_origin": ORIGIN+6*LEFT+3*DOWN, + "x_axis_width": 6, + "x_labeled_nums": list(range(0, 4)), + "y_labeled_nums": list(range(0, 6)), + } + def construct(self): + + XTD = self.x_axis_width/(self.x_max - self.x_min) + YTD = self.y_axis_height/(self.y_max - self.y_min) + + self.setup_axes(animate = True) + + graph = self.get_graph(lambda x : x*x, x_min = 0.5, x_max = 2, color = GREEN) + + point1 = Dot().shift(self.graph_origin+0.25*YTD*UP + 0.5*XTD*RIGHT) + point1_lab = TextMobject(r"$t = a$") + point1_lab.scale(0.7) + point1_lab.next_to(point1, RIGHT) + + point2 = Dot().shift(self.graph_origin+2*XTD*RIGHT+4*YTD*UP) + point2_lab = TextMobject(r"$t = b$") + point2_lab.scale(0.7) + point2_lab.next_to(point2, RIGHT) + + + vector1 = Arrow(self.graph_origin, self.graph_origin+1*YTD*UP + 1*XTD*RIGHT, buff=0.02, color = RED) + vector1_lab = TextMobject(r"$\vec r(t)$", color = RED) + vector1_lab.move_to(self.graph_origin+1.2*XTD*RIGHT+ 0.75*YTD*UP) + vector1_lab.scale(0.8) + + vector2 = Arrow(self.graph_origin, self.graph_origin+2.25*YTD*UP + 1.5*XTD*RIGHT, buff=0.02, color = YELLOW_C) + vector2_lab = TextMobject(r"$\vec r(t + h)$", color = YELLOW_C) + vector2_lab.move_to(self.graph_origin+0.5*XTD*RIGHT+ 2*YTD*UP) + vector2_lab.scale(0.8) + + vector3 = Arrow(self.graph_origin+1*YTD*UP + 1*XTD*RIGHT, self.graph_origin+2.25*YTD*UP + 1.5*XTD*RIGHT, buff=0.02, color = PINK) + vector3_lab = TextMobject(r"$\vec r(t + h) - \vec r(t)$", color = PINK) + vector3_lab.move_to(self.graph_origin+2*XTD*RIGHT+ 1.5*YTD*UP) + vector3_lab.scale(0.8) + + + self.play(ShowCreation(graph)) + self.play(ShowCreation(point1), Write(point1_lab)) + self.play(ShowCreation(point2), Write(point2_lab)) + + self.play(GrowArrow(vector1),Write(vector1_lab)) + self.play(GrowArrow(vector2),Write(vector2_lab)) + self.play(GrowArrow(vector3),Write(vector3_lab)) + self.wait(1) + + self.display_text() + + self.play(ApplyMethod(vector3_lab.move_to,(self.graph_origin+2.3*XTD*RIGHT+ 2.2*YTD*UP))) + + vector4 = Arrow(self.graph_origin+1*YTD*UP + 1*XTD*RIGHT, self.graph_origin+1*YTD*UP + 1.5*XTD*RIGHT, buff=0.02, color = PURPLE) + vector4_lab = TextMobject(r"$dx$", color = PURPLE) + vector4_lab.move_to(self.graph_origin+1.7*XTD*RIGHT+ 0.8*YTD*UP) + vector4_lab.scale(0.7) + + vector5 = Arrow(self.graph_origin+1*YTD*UP + 1.5*XTD*RIGHT, self.graph_origin+2.25*YTD*UP + 1.5*XTD*RIGHT, buff=0.02, color = ORANGE) + vector5_lab = TextMobject(r"$dy$", color = ORANGE) + vector5_lab.move_to(self.graph_origin+1.7*XTD*RIGHT+ 1.4*YTD*UP) + vector5_lab.scale(0.7) + + self.play(GrowArrow(vector4),Write(vector4_lab)) + self.play(GrowArrow(vector5),Write(vector5_lab)) + self.wait(2) + + + + def display_text(self): + text1 = TextMobject(r"$\vec r(t)$",r"+", r"$\vec r(t + h) - \vec r(t)$") + text1[0].set_color(RED) + text1[2].set_color(PINK) + text1.scale(0.7) + + text2 = TextMobject(r"$\vec r(t + h)$", color = YELLOW_C) + text2.scale(0.7) + + text3 = TextMobject(r"$ \vec r(t + h) - \vec r(t)$", color = PINK) + text3.scale(0.7) + + text4 = TextMobject(r"[", r"$x(t+h)$", r"$\vec i$", r"+", r"$y(t+h)$", r"$\vec j$", r"$] - [$", r"$x(t)$", r"$\vec i$", r"+", r"y(t)", r"$\vec j$", r"]") + text4.set_color_by_tex(r"\vec i", BLUE) + text4.set_color_by_tex(r"\vec j", GREEN) + text4[1].set_color(YELLOW_C) + text4[4].set_color(YELLOW_C) + text4[-6].set_color(RED) + text4[-3].set_color(RED) + text4.scale(0.7) + + text5 = TextMobject(r"$[x(t+h) - x(t)]$", r"$\vec i$", r"+", r"$[y(t+h) + y(t)]$", r"$\vec j$") + text5.set_color_by_tex(r"\vec i", BLUE) + text5.set_color_by_tex(r"\vec j", GREEN) + text5[0].set_color(PURPLE) + text5[3].set_color(ORANGE) + text5.scale(0.7) + + text6 = TextMobject(r"$\frac{[\vec r(t + h) - \vec r(t)]}{h}$", r"=", r"$\frac{[x(t+h) - x(t)]}{h}$", r"$\vec i$", r"+", r"$\frac{[y(t+h) + y(t)]}{h}$", r"$\vec j$") + text6.set_color_by_tex(r"\vec i", BLUE) + text6.set_color_by_tex(r"\vec j", GREEN) + text6[0].set_color(PINK) + text6[2].set_color(PURPLE) + text6[-2].set_color(ORANGE) + text6.scale(0.8) + + text7 = TextMobject(r"$\lim_{h \rightarrow 0}$", r"$\frac{[\vec r(t + h) - \vec r(t)]}{h}$", r"=", r"$\lim_{h \rightarrow 0}$", r"$\frac{[x(t+h) - x(t)]}{h}$", r"$\vec i$", r"+", r"$\lim_{h \rightarrow 0}$", r"$\frac{[y(t+h) + y(t)]}{h}$", r"$\vec j$") + text7.set_color_by_tex(r"\vec i", BLUE) + text7.set_color_by_tex(r"\vec j", GREEN) + text7[1].set_color(PINK) + text7[4].set_color(PURPLE) + text7[-2].set_color(ORANGE) + text7.scale(0.6) + + text8 = TextMobject(r"$\vec r'(t)$", r"=",r"$\vec x'(t)$", r"$\vec i$", r"+", r"$\vec y'(t)$", r"$\vec j$") + text8.set_color_by_tex(r"\vec i", BLUE) + text8.set_color_by_tex(r"\vec j", GREEN) + text8[0].set_color(PINK) + text8[2].set_color(PURPLE) + text8[5].set_color(ORANGE) + text8.scale(0.7) + + text9 = TextMobject(r"$\frac{d \vec r}{dt}$", r"=", r"$\frac{d \vec x}{dt}$", r"$\vec i$", r"+", r"$\frac{d \vec y}{dt}$", r"$\vec j$") + text9.set_color_by_tex(r"\vec i", BLUE) + text9.set_color_by_tex(r"\vec j", GREEN) + text9[0].set_color(PINK) + text9[2].set_color(PURPLE) + text9[5].set_color(ORANGE) + text9.scale(0.7) + + + text10 = TextMobject(r"$d \vec r$", r"=", r"$\frac{d \vec x}{dt}dt$", r"$\vec i$", r"+", r"$\frac{d \vec y}{dt}dt$", r"$\vec j$") + text10.set_color_by_tex(r"\vec i", BLUE) + text10.set_color_by_tex(r"\vec j", GREEN) + text10[0].set_color(PINK) + text10[2].set_color(PURPLE) + text10[5].set_color(ORANGE) + text10.scale(0.7) + + text11 = TextMobject(r"$d \vec r$", r"=", r"$x'(t)dt$", r"$\vec i$", r"+", r"$y'(t)dt$", r"$\vec j$") + text11.set_color_by_tex(r"\vec i", BLUE) + text11.set_color_by_tex(r"\vec j", GREEN) + text11[0].set_color(PINK) + text11[2].set_color(PURPLE) + text11[5].set_color(ORANGE) + text11.scale(0.7) + + text12 = TextMobject(r"$d \vec r$", r"=", r"$dx$", r"$\vec i$", r"+", r"$dy$", r"$\vec j$") + text12.set_color_by_tex(r"\vec i", BLUE) + text12.set_color_by_tex(r"\vec j", GREEN) + text12[0].set_color(PINK) + text12[2].set_color(PURPLE) + text12[5].set_color(ORANGE) + text12.scale(0.7) + + + text1.move_to(1*UP+2.7*RIGHT) + text2.move_to(1*UP+2.7*RIGHT) + text3.move_to(1*UP+2.7*RIGHT) + text4.move_to(1*UP+2.7*RIGHT) + text5.move_to(1*UP+2.7*RIGHT) + text6.move_to(1*UP+2.7*RIGHT) + text7.move_to(1*UP+2.5*RIGHT) + text8.move_to(1*UP+2.7*RIGHT) + text9.move_to(1*UP+2.7*RIGHT) + text10.move_to(1*UP+2.7*RIGHT) + text11.move_to(1*UP+2.7*RIGHT) + text12.move_to(1*UP+2.7*RIGHT) + + brace1 = Brace(text7[0:2], DOWN, buff = SMALL_BUFF) + brace2 = Brace(text7[3:6], UP, buff = SMALL_BUFF) + brace3 = Brace(text7[7:], DOWN, buff = SMALL_BUFF) + t1 = brace1.get_text(r"$\vec r'(t)$") + t1.set_color(PINK) + + t2 = brace2.get_text(r"$\vec x'(t)$") + t2.set_color(PURPLE) + + t3 = brace3.get_text(r"$\vec y'(t)$") + t3.set_color(ORANGE) + + + self.play(Write(text1)) + self.play(Transform(text1, text2)) + self.wait(1) + + self.play(Transform(text1, text3)) + self.wait(1) + + self.play(Transform(text1, text4)) + self.wait(1) + + self.play(Transform(text1, text5)) + self.wait(1) + + self.play(Transform(text1, text6)) + self.wait(1) + + self.play(Transform(text1, text7)) + self.wait(1) + + self.play( + GrowFromCenter(brace1), + FadeIn(t1), + ) + self.wait() + self.play( + ReplacementTransform(brace1.copy(),brace2), + ReplacementTransform(t1.copy(),t2) + ) + self.wait() + self.play( + ReplacementTransform(brace2.copy(),brace3), + ReplacementTransform(t2.copy(),t3) + ) + self.wait() + + self.play(FadeOut(brace1), FadeOut(t1), FadeOut(brace2), FadeOut(t2), FadeOut(brace3), FadeOut(t3),) + self.wait() + + self.play(Transform(text1, text8)) + self.wait(1) + + self.play(Transform(text1, text9)) + self.wait(1) + + self.play(Transform(text1, text10)) + self.wait(1) + + self.play(Transform(text1, text11)) + self.wait(1) + + self.play(Transform(text1, text12)) + self.wait(1) + + + + + diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/Multivariable Functions/multivariable_func_examples.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/Multivariable Functions/multivariable_func_examples.py new file mode 100644 index 0000000..7322e47 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/Multivariable Functions/multivariable_func_examples.py @@ -0,0 +1,69 @@ +from manimlib.imports import * + +class Examples(GraphScene): + def construct(self): + + rectangle = Rectangle(height = 3, width = 4, color = GREEN) + square = Square(side_length = 5, color = PURPLE) + circle = Circle(radius = 2, color = PINK) + radius = Line(ORIGIN,2*RIGHT) + + radius.set_color(RED) + + rectangle_area_func = TextMobject(r"$Area = f(Length, Breadth)$") + rectangle_area_func.scale(0.6) + square_area_func = TextMobject(r"$Area = f(Length)$") + circle_area_func = TextMobject(r"$Area = f(r)$") + + + rectangle_area = TextMobject(r"$Area = Length \times Breadth$") + rectangle_area.scale(0.6) + square_area = TextMobject(r"$Area = Length^2$") + circle_area = TextMobject(r"$Area = \pi r^2$") + + braces_rect1 = Brace(rectangle, LEFT) + eq_text1 = braces_rect1.get_text("Length") + braces_rect2 = Brace(rectangle, UP) + eq_text2 = braces_rect2.get_text("Breadth") + + braces_square = Brace(square, LEFT) + braces_square_text = braces_square.get_text("Length") + + radius_text = TextMobject("r") + radius_text.next_to(radius,UP) + + + + self.play(ShowCreation(rectangle)) + self.wait(1) + self.play(GrowFromCenter(braces_rect1),Write(eq_text1),GrowFromCenter(braces_rect2),Write(eq_text2)) + self.wait(1) + self.play(Write(rectangle_area_func)) + self.wait(1) + self.play(Transform(rectangle_area_func, rectangle_area)) + self.wait(1) + self.play(FadeOut(braces_rect1),FadeOut(eq_text1),FadeOut(braces_rect2),FadeOut(eq_text2),FadeOut(rectangle_area_func)) + + + self.play(Transform(rectangle, square)) + self.wait(1) + self.play(GrowFromCenter(braces_square),Write(braces_square_text)) + self.wait(1) + self.play(Write(square_area_func)) + self.wait(1) + self.play(Transform(square_area_func, square_area)) + self.wait(1) + self.play(FadeOut(braces_square),FadeOut(braces_square_text),FadeOut(square_area_func)) + + + self.play(Transform(rectangle, circle)) + self.wait(1) + self.play(ShowCreation(radius),Write(radius_text)) + self.wait(1) + self.play(FadeOut(radius_text),FadeOut(radius)) + self.wait(1) + self.play(Write(circle_area_func)) + self.wait(1) + self.play(Transform(circle_area_func, circle_area)) + self.wait(1) + self.play(FadeOut(circle_area_func)) \ No newline at end of file diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/Multivariable Functions/multivariable_func_plot_sphere.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/Multivariable Functions/multivariable_func_plot_sphere.py new file mode 100644 index 0000000..baf08b1 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/Multivariable Functions/multivariable_func_plot_sphere.py @@ -0,0 +1,42 @@ +from manimlib.imports import * + +class Sphere(ThreeDScene): + def construct(self): + axes = ThreeDAxes() # creates a 3D Axis + + sphere = ParametricSurface( + lambda u, v: np.array([ + np.sin(u)*np.cos(v), + np.sin(u)*np.sin(v), + np.cos(u) + ]),u_min=0,u_max=PI,v_min=0,v_max=2*PI,checkerboard_colors=[RED_D, RED_E], + resolution=(15, 32)).scale(2) + + + + #self.set_camera_orientation(phi=0 * DEGREES,theta=270*DEGREES) + + text3d = TextMobject(r"$f(x,y) \rightarrow Point(x,y,z)$") + text3d1 = TextMobject(r"$f(x,y) \rightarrow Point(x,y, 1 - x^2 - y^2)$") + self.add_fixed_in_frame_mobjects(text3d) + text3d.scale(0.7) + text3d1.scale(0.7) + text3d.to_corner(UL) + text3d1.to_corner(UL) + text3d.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) + text3d1.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) + self.play(Write(text3d)) + self.wait(1) + + self.play(Transform(text3d,text3d1)) + self.add_fixed_in_frame_mobjects(text3d1) + self.play(FadeOut(text3d)) + + + self.set_camera_orientation(phi=75 * DEGREES) + self.begin_ambient_camera_rotation(rate=0.3) + + + self.add(axes) + self.play(Write(sphere)) + self.wait(5) \ No newline at end of file diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/Multivariable Functions/multivariable_func_respresntation.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/Multivariable Functions/multivariable_func_respresntation.py new file mode 100644 index 0000000..4bfcf21 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/Multivariable Functions/multivariable_func_respresntation.py @@ -0,0 +1,80 @@ +from manimlib.imports import * + +class MultivariableFunc(Scene): + def construct(self): + + topic = TextMobject("Multivariable Functions") + topic.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) + topic.scale(2) + + self.play(Write(topic)) + self.wait(1) + self.play(FadeOut(topic)) + + + circle = Circle() + circle.scale(3) + + eqn1 = TextMobject(r"f(x,y) = $x^2y$") + eqn1.set_color(YELLOW) + + + + number1 = TextMobject("(2,1)") + number1.move_to(3*UP+ 3*LEFT) + number1.scale(1.2) + number1.set_color(GREEN) + + output1 = TextMobject("4") + output1.scale(1.5) + output1.set_color(BLUE) + + eqn1_1 = TextMobject(r"f(2,1) = $2^2(1)$") + eqn1_1.set_color(YELLOW) + + + self.play(ShowCreation(circle),Write(eqn1)) + self.wait(1) + self.play(ApplyMethod(number1.move_to, 0.6*LEFT)) + self.play(FadeOut(number1)) + self.play(Transform(eqn1, eqn1_1)) + self.wait(1) + self.play(ApplyMethod(output1.move_to, 3*DOWN+4*RIGHT)) + self.wait(1) + self.play(FadeOut(output1)) + + + eqn2 = TextMobject(r"f(x,y,z) = $x^2y+2yz$") + eqn2.set_color(YELLOW) + + number2 = TextMobject("(2,1,3)") + number2.move_to(3*UP+ 3*LEFT) + number2.scale(1.2) + number2.set_color(GREEN) + + output2 = TextMobject("8") + output2.scale(1.5) + output2.set_color(BLUE) + + eqn2_1 = TextMobject(r"f(2,1,3) = $2^2(1) + 2(1)(3)$") + eqn2_1.set_color(YELLOW) + + eqn2_2 = TextMobject(r"f(2,1,3) = $2 + 6$") + eqn2_2.set_color(YELLOW) + + + + self.play(FadeOut(eqn1)) + self.play(Write(eqn2)) + + self.wait(1) + self.play(ApplyMethod(number2.move_to, 1.2*LEFT)) + self.play(FadeOut(number2)) + self.play(Transform(eqn2, eqn2_1)) + self.wait(1) + self.play(Transform(eqn2, eqn2_2)) + self.wait(1) + self.play(ApplyMethod(output2.move_to, 3*DOWN+4*RIGHT)) + self.wait(1) + self.play(FadeOut(output2),FadeOut(eqn2),FadeOut(circle)) + self.wait(2) \ No newline at end of file diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/Multivariable Functions/multivariable_func_vectorvf_sine.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/Multivariable Functions/multivariable_func_vectorvf_sine.py new file mode 100644 index 0000000..06e225e --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/Multivariable Functions/multivariable_func_vectorvf_sine.py @@ -0,0 +1,91 @@ +from manimlib.imports import * + +class SineVectors(GraphScene): + CONFIG = { + "x_min": 0, + "x_max": 10, + "y_min": -1, + "y_max": 1, + "graph_origin": ORIGIN+4*LEFT, + #"x_labeled_nums": list(range(-5, 6)), + #"y_labeled_nums": list(range(0, 5)), + } + def construct(self): + + + + + + XTD = self.x_axis_width/(self.x_max - self.x_min) + YTD = self.y_axis_height/(self.y_max - self.y_min) + + self.setup_axes(animate = True) + + + sine1 = self.get_graph(lambda x : np.sin(x), x_min = 0, x_max = 1.575, color = GREEN) + + point1 = Dot().shift(self.graph_origin+1*YTD*UP + 1.575*XTD*RIGHT) + point1_lab = TextMobject(r"$t = (\frac{\pi}{2})$") + point1_lab.scale(0.7) + point1_lab.next_to(point1, UP) + + vector1 = Arrow(self.graph_origin, self.graph_origin+1*YTD*UP + 1.575*XTD*RIGHT, buff=0.1, color = RED) + vector1_lab = TextMobject(r"$r(\frac{\pi}{2})$", color = RED) + vector1_lab.move_to(self.graph_origin+1.5*XTD*RIGHT+ 0.5*YTD*UP) + + self.play(GrowArrow(vector1),Write(vector1_lab)) + self.play(ShowCreation(point1), Write(point1_lab)) + self.play(ShowCreation(sine1)) + self.wait(1) + + + sine2 = self.get_graph(lambda x : np.sin(x), x_min = 1.575, x_max = 3.15, color = GREEN) + + point2 = Dot().shift(self.graph_origin+3.15*XTD*RIGHT) + point2_lab = TextMobject(r"$t = (\pi)$") + point2_lab.scale(0.7) + point2_lab.next_to(point2, UP+RIGHT) + + vector2 = Arrow(self.graph_origin, self.graph_origin+3.15*XTD*RIGHT, buff=0.1, color = BLUE) + vector2_lab = TextMobject(r"$r(\pi)$", color = BLUE) + vector2_lab.move_to(self.graph_origin+1.5*XTD*RIGHT+ 0.15*YTD*UP) + + self.play(GrowArrow(vector2),Write(vector2_lab)) + self.play(ShowCreation(point2), Write(point2_lab)) + self.play(ShowCreation(sine2)) + self.wait(1) + + + sine3 = self.get_graph(lambda x : np.sin(x), x_min = 3.15, x_max = 4.725, color = GREEN) + + point3 = Dot().shift(self.graph_origin+1*YTD*DOWN + 4.725*XTD*RIGHT) + point3_lab = TextMobject(r"$t = (\frac{3\pi}{2})$") + point3_lab.scale(0.7) + point3_lab.next_to(point3, DOWN) + + vector3 = Arrow(self.graph_origin, self.graph_origin+1*YTD*DOWN + 4.725*XTD*RIGHT, buff=0.1, color = YELLOW_C) + vector3_lab = TextMobject(r"$r(\frac{3\pi}{2})$", color = YELLOW_C) + vector3_lab.move_to(self.graph_origin+2*XTD*RIGHT+ 0.7*YTD*DOWN) + + self.play(GrowArrow(vector3),Write(vector3_lab)) + self.play(ShowCreation(point3), Write(point3_lab)) + self.play(ShowCreation(sine3)) + self.wait(1) + + + sine4 = self.get_graph(lambda x : np.sin(x), x_min = 4.725, x_max = 6.3, color = GREEN) + + point4 = Dot().shift(self.graph_origin+6.3*XTD*RIGHT) + point4_lab = TextMobject(r"$t = (2\pi)$") + point4_lab.scale(0.7) + point4_lab.next_to(point4, UP+RIGHT) + + vector4 = Arrow(self.graph_origin, self.graph_origin+6.3*XTD*RIGHT, buff=0.1, color = PURPLE) + vector4_lab = TextMobject(r"$r(2\pi)$", color = PURPLE) + vector4_lab.move_to(self.graph_origin+4.5*XTD*RIGHT+ 0.15*YTD*DOWN) + + self.play(GrowArrow(vector4),Write(vector4_lab)) + self.play(ShowCreation(point4), Write(point4_lab)) + self.play(ShowCreation(sine4)) + self.wait(3) + -- cgit