1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
from manimlib.imports import *
class limit1(GraphScene,MovingCameraScene):
def setup(self):
GraphScene.setup(self)
MovingCameraScene.setup(self)
CONFIG = {
"y_max" : 1,
"y_min" : 0,
"x_max" : 1,
"x_min" : -1,
"y_tick_frequency" : 0.2,
"x_tick_frequency" : 0.2,
"axes_color" : WHITE,
"num_graph_anchor_points": 3000, #this is the number of points that graph manim
"graph_origin" : ORIGIN+3*DOWN,
"x_labeled_nums": list(range(-1,2)),
"y_labeled_nums": list(range(0,2)),
"x_axis_label":"$x$",
"y_axis_label":"$f(x)$",
"x_axis_width": 10,
"y_axis_height": 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)
dot1 = SmallDot(np.array([0.025,-2.975,0]))
dot2 = SmallDot(np.array([-0.025,-2.975,0]))
sqr = Square(side_length = 15.0).move_to(np.array([0,-3,0]))
brline1 = DashedVMobject(Line(np.array([0.15,-3,0]), np.array([0.15,-2.85,0])))
brline2 = DashedVMobject(Line(np.array([0.025,-3,0]), np.array([0.025,-2.975,0])))
brline3 = DashedVMobject(Line(np.array([-0.15,-3,0]), np.array([-0.15,-2.85,0])))
brline4 = DashedVMobject(Line(np.array([-0.025,-3,0]), np.array([-0.025,-2.975,0])))
textdef = TextMobject("")
text003 = TextMobject("0.03").move_to(np.array([0.15,-3.05,0])).scale(0.1)
textazero1 = TexMobject(r"\approx 0").move_to(np.array([0.04,-3.05,0])).scale(0.1)
textazero2 = TexMobject(r"\approx 0").move_to(np.array([-0.04,-3.05,0])).scale(0.1)
textm003 = TextMobject("-0.03").move_to(np.array([-0.15,-3.05,0])).scale(0.1)
text2 = TextMobject("Let f(x) = |x|. We'll check neighbourhood of origin")
text3 = TextMobject("h has to be a very small number greater than 0").move_to(np.array([0,-3.3,0])).scale(0.2)
text4 = TextMobject("The point travels through range of neighbourhood").move_to(np.array([0,-3.3,0])).scale(0.19)
text5 = TextMobject("let h be equal to 0.03").move_to(np.array([0,-3.3,0])).scale(0.25)
text6 = TextMobject("Notice how the point never touches the origin").move_to(np.array([0,-3.3,0])).scale(0.2)
text7 = TextMobject("Green line shows the Right hand neighbourhood of origin").move_to(np.array([0,-3.3,0])).scale(0.17)
text8 = TextMobject("The point is approaching (0,0) for the values of x which are positive").move_to(np.array([0,-3.3,0])).scale(0.1)
text9 = TextMobject("Values of x are tending to 0 from positive side").move_to(np.array([0,-3.3,0])).scale(0.19)
text10 = TexMobject(r"\text {Notation for this is }",r"x\rightarrow { 0 }^{ + }").move_to(np.array([0,-3.3,0])).scale(0.25)
text11 = TextMobject("Similar case can be made for negative values of x").move_to(np.array([0,-3.3,0])).scale(0.19)
text12 = TextMobject("The point is approaching (0,0) for the values of x which are negative").move_to(np.array([0,-3.3,0])).scale(0.1)
text13 = TextMobject("Values of x are tending to 0 from negative side").move_to(np.array([0,-3.3,0])).scale(0.19)
text14 = TexMobject(r"\text {Notation for this is }",r"x\rightarrow { 0 }^{ - }").move_to(np.array([0,-3.3,0])).scale(0.25)
self.play(FadeIn(text2), run_time = 1.5)
self.wait(2.5)
self.setup_axes()
graph_1 = self.get_graph(lambda x : x, color = RED, x_min = 0, x_max = 1)
graph_2 = self.get_graph(lambda x : -x, color = RED, x_min = 0, x_max = -1)
graph_3 = self.get_graph(lambda x : x,color = RED, x_min = 0.005, x_max = 0.03)
graph_4 = self.get_graph(lambda x : x,color = GREEN_SCREEN, x_min = 0.03, x_max = 0.005)
graph_5 = self.get_graph(lambda x : -x,color = GREEN_SCREEN, x_min = -0.03, x_max = -0.005)
grp1 = VGroup(graph_1,graph_2)
grp2 = VGroup(brline2, textazero1)
grp3 = VGroup(textazero2, textm003, brline3, brline4)
self.play(ShowCreation(grp1))
self.add(sqr)
self.play(ReplacementTransform(text2, text3))
self.camera_frame.save_state()
self.play(self.camera_frame.set_width,2.25,self.camera_frame.move_to,sqr,run_time = 2)
self.wait(2.5)
self.play(ReplacementTransform(text3, text4), ShowCreation(dot1))
self.wait(2.5)
self.play(ReplacementTransform(text4, text5), ShowCreation(brline1), ShowCreation(text003))
self.wait(2.5)
for i in range(0,3):
self.play(MoveAlongPath(dot1,graph_3), run_time = 0.5)
self.play(MoveAlongPath(dot1,graph_4), run_time = 0.5)
self.play(ReplacementTransform(text5, text6), ShowCreation(grp2))
self.wait(2)
self.play(FadeOut(dot1))
self.add(graph_4)
self.play(ReplacementTransform(text6, text7))
self.wait(2.5)
self.play(ReplacementTransform(text7,text8))
for i in range(0,3):
self.play(MoveAlongPath(dot1,graph_4), run_time = 0.7)
self.play(ReplacementTransform(text8, text9))
self.wait(2.5)
self.play(ReplacementTransform(text9, text10))
self.wait(2.5)
self.play(ShowCreation(grp3), ReplacementTransform(text10, text11), FadeOut(dot1))
self.add(graph_5)
for i in range(0,3):
self.play(MoveAlongPath(dot2, graph_5), run_time = 0.7)
self.play(ReplacementTransform(text11, text12))
self.wait(2.5)
self.play(ReplacementTransform(text12, text13))
self.wait(2.5)
self.play(ReplacementTransform(text13, text14))
self.wait(2)
self.play(FadeOut(dot2), ReplacementTransform(text14, textdef))
self.wait(2)
self.play(Restore(self.camera_frame))
self.wait(2.5)
|