diff options
Diffstat (limited to 'FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file2_partial_deriv_hill.py')
-rw-r--r-- | FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file2_partial_deriv_hill.py | 43 |
1 files changed, 33 insertions, 10 deletions
diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file2_partial_deriv_hill.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file2_partial_deriv_hill.py index bfb7687..cd24859 100644 --- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file2_partial_deriv_hill.py +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file2_partial_deriv_hill.py @@ -17,7 +17,7 @@ class Hill(ThreeDScene): u,
0,
2 - u*u
- ]),color=RED_E,t_min=-1.2,t_max=1.2,
+ ]),color=RED_E,t_min=0,t_max=1.2,
)
func_y =ParametricFunction(
@@ -25,7 +25,7 @@ class Hill(ThreeDScene): 0,
u,
2 - 1.5*u*u
- ]),color=PINK,t_min=-1.2,t_max=1.2,
+ ]),color=PINK,t_min=0,t_max=1.2,
)
self.set_camera_orientation(phi=60 * DEGREES, theta = 0*DEGREES)
@@ -51,18 +51,29 @@ class Hill(ThreeDScene): text_x[1].set_color(PINK)
- slope_text_x = TexMobject("Slope =", "{\\partial", "f", "\\over", "\\partial", "x}").scale(0.6).move_to(2*UP + 3.5*RIGHT)
+ slope_text_x = TexMobject("Slope =", "{\\partial", "f", "\\over", "\\partial", "x}", "=").scale(0.6).move_to(2*UP + 3.5*RIGHT)
slope_text_x[0].set_color(BLUE_E)
slope_text_x.set_color_by_tex("\\partial",YELLOW_C)
slope_text_x.set_color_by_tex("f",RED_E)
slope_text_x[5].set_color(PINK)
- self.add_fixed_in_frame_mobjects(text_x, slope_text_x)
+ number_x = DecimalNumber(0,color=RED_C).scale(0.7).next_to(slope_text_x, RIGHT)
+
+ prev_x_x = 0.01
+ prev_x_z = 2
+
+ self.add_fixed_in_frame_mobjects(text_x, slope_text_x, number_x)
dot_x = Dot().rotate(PI/2).set_color(YELLOW_E)
alpha_x = ValueTracker(0)
vector_x = self.get_tangent_vector(alpha_x.get_value(),func_x,scale=1.5)
dot_x.add_updater(lambda m: m.move_to(vector_x.get_center()))
+ number_x.add_updater(lambda m: m.set_value((dot_x.get_center()[2] - prev_x_z)/(dot_x.get_center()[0] - prev_x_x)))
+ number_x.add_updater(lambda m: self.add_fixed_in_frame_mobjects(m))
+
+ prev_x_x = (dot_x.get_center()[0])
+ prev_x_z = (dot_x.get_center()[2])
+
self.play(
ShowCreation(func_x),
GrowFromCenter(dot_x),
@@ -76,27 +87,39 @@ class Hill(ThreeDScene): self.add(vector_x,dot_x)
- self.play(alpha_x.increment_value, 1, run_time=10, rate_func=linear)
+ self.play(alpha_x.increment_value, 1, run_time=3, rate_func=linear)
#self.move_camera(phi=60 * DEGREES, theta = 0*DEGREES)
- self.play(FadeOut(vector_x), FadeOut(dot_x), FadeOut(func_x), FadeOut(text_x), FadeOut(slope_text_x))
+ self.play(FadeOut(number_x), FadeOut(vector_x), FadeOut(dot_x), FadeOut(func_x), FadeOut(text_x), FadeOut(slope_text_x))
text_y = TextMobject("Slope of the hill along", r"$y$", "axis", color = YELLOW_C).scale(0.6).move_to(2.7*UP + 3.5*RIGHT)
text_y[1].set_color(RED_C)
- slope_text_y = TexMobject("Slope =", "{\\partial", "f", "\\over", "\\partial", "x}").scale(0.6).move_to(2*UP + 3.5*RIGHT)
+ slope_text_y = TexMobject("Slope =", "{\\partial", "f", "\\over", "\\partial", "y}").scale(0.6).move_to(2*UP + 3.5*RIGHT)
slope_text_y[0].set_color(BLUE_E)
slope_text_y.set_color_by_tex("\\partial",YELLOW_C)
slope_text_y.set_color_by_tex("f",PINK)
slope_text_y[5].set_color(RED_C)
- self.add_fixed_in_frame_mobjects(text_y, slope_text_y)
+ number_y = DecimalNumber(0,color=RED_C).scale(0.7).next_to(slope_text_y, RIGHT)
+
+ prev_y_x = 0.01
+ prev_y_z = 2
+
+ self.add_fixed_in_frame_mobjects(text_y, slope_text_y, number_y)
dot_y = Dot().rotate(PI/2).set_color(BLUE_E)
alpha_y = ValueTracker(0)
vector_y = self.get_tangent_vector(alpha_y.get_value(),func_y,scale=1.5)
dot_y.add_updater(lambda m: m.move_to(vector_y.get_center()))
+ number_y.add_updater(lambda m: m.set_value((dot_y.get_center()[2] - prev_y_z)/(dot_y.get_center()[0] - prev_y_x)))
+ number_y.add_updater(lambda m: self.add_fixed_in_frame_mobjects(m))
+
+ prev_y_x = (dot_y.get_center()[0])
+ prev_y_z = (dot_y.get_center()[2])
+
+
self.play(
ShowCreation(func_y),
GrowFromCenter(dot_y),
@@ -109,8 +132,8 @@ class Hill(ThreeDScene): )
self.add(vector_y,dot_y)
- self.play(alpha_y.increment_value, 1, run_time=10, rate_func=linear)
- self.play(FadeOut(vector_y), FadeOut(dot_y), FadeOut(func_y), FadeOut(text_y), FadeOut(slope_text_y))
+ self.play(alpha_y.increment_value, 1, run_time=3, rate_func=linear)
+ self.play(FadeOut(number_y), FadeOut(vector_y), FadeOut(dot_y), FadeOut(func_y), FadeOut(text_y), FadeOut(slope_text_y))
self.wait(2)
def get_tangent_vector(self, proportion, curve, dx=0.001, scale=1):
|