summaryrefslogtreecommitdiff
path: root/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines
diff options
context:
space:
mode:
Diffstat (limited to 'FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines')
-rw-r--r--FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/README.md14
-rw-r--r--FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file1_line_eqn.gifbin0 -> 4694940 bytes
-rw-r--r--FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file1_line_eqn.py26
-rw-r--r--FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file2_point_normal_form_plane.gifbin0 -> 430431 bytes
-rw-r--r--FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file2_point_normal_form_plane.py39
-rw-r--r--FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file3_intercept_form_plane.gifbin0 -> 2884416 bytes
-rw-r--r--FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file3_intercept_form_plane.py29
-rw-r--r--FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file4_3d_plane.gifbin0 -> 2037923 bytes
-rw-r--r--FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file4_3d_plane.py49
-rw-r--r--FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file5_vector_form_line.gifbin0 -> 536607 bytes
-rw-r--r--FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file5_vector_form_line.py47
11 files changed, 204 insertions, 0 deletions
diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/README.md b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/README.md
new file mode 100644
index 0000000..29d2f6a
--- /dev/null
+++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/README.md
@@ -0,0 +1,14 @@
+**file1_line_eqn.py**<br>
+![file1_line_eqn.py](https://raw.githubusercontent.com/saarthdeshpande/FSF-mathematics-python-code-archive/master/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file1_line_eqn.gif)
+
+**file2_point_normal_form_plane.py**<br>
+![file2_point_normal_form_plane.py](https://raw.githubusercontent.com/saarthdeshpande/FSF-mathematics-python-code-archive/master/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file2_point_normal_form_plane.gif)
+
+**file3_intercept_form_plane.py**<br>
+![file3_intercept_form_plane.py](https://raw.githubusercontent.com/saarthdeshpande/FSF-mathematics-python-code-archive/master/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file3_intercept_form_plane.gif)
+
+**file4_3d_plane.py**<br>
+![file4_3d_plane.py](https://raw.githubusercontent.com/saarthdeshpande/FSF-mathematics-python-code-archive/master/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file4_3d_plane.gif)
+
+**file5_vector_form_line.py**<br>
+![file5_vector_form_line.py](https://raw.githubusercontent.com/saarthdeshpande/FSF-mathematics-python-code-archive/master/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file5_vector_form_line.gif)
diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file1_line_eqn.gif b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file1_line_eqn.gif
new file mode 100644
index 0000000..a8a301a
--- /dev/null
+++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file1_line_eqn.gif
Binary files differ
diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file1_line_eqn.py b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file1_line_eqn.py
new file mode 100644
index 0000000..402775b
--- /dev/null
+++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file1_line_eqn.py
@@ -0,0 +1,26 @@
+from manimlib.imports import *
+
+class three(ThreeDScene):
+ def construct(self):
+ axes = ThreeDAxes()
+ self.set_camera_orientation(phi=14.25* DEGREES,theta=0*DEGREES,distance=8)
+ self.play(FadeIn(axes))
+
+ plane = ParametricSurface(
+ lambda u,v: np.array([
+ 6,
+ 8*v,
+ 3*u
+ ]), u_min = -0.8, u_max = 0.8, fill_opacity = 0.4).rotate(45*DEGREES).move_to(ORIGIN).shift(RIGHT+UP)
+ d2text = TextMobject(r'$\mathbb{R}^{2}: y = mx + c$').shift(3*LEFT + 2*UP).rotate(np.pi/2)
+ d3text = TextMobject(r'$\mathbb{R}^{3}: y = mx + c$').shift(4*RIGHT+3*UP)
+ self.play(FadeIn(plane), FadeIn(d2text))
+ self.wait(3)
+ self.play(FadeOut(d2text))
+ self.move_camera(phi = 60*DEGREES, theta=45*DEGREES,run_time=3)
+ self.begin_ambient_camera_rotation(rate=0.02)
+ self.add_fixed_in_frame_mobjects(d3text)
+ self.play(FadeIn(d3text))
+ self.wait(3)
+ self.play(FadeOut(d3text), FadeOut(plane), FadeOut(axes))
+ self.wait()
diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file2_point_normal_form_plane.gif b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file2_point_normal_form_plane.gif
new file mode 100644
index 0000000..e651be0
--- /dev/null
+++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file2_point_normal_form_plane.gif
Binary files differ
diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file2_point_normal_form_plane.py b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file2_point_normal_form_plane.py
new file mode 100644
index 0000000..122a9ff
--- /dev/null
+++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file2_point_normal_form_plane.py
@@ -0,0 +1,39 @@
+from manimlib.imports import *
+
+class pointnormal(ThreeDScene):
+ def construct(self):
+ axes = ThreeDAxes()
+
+ self.set_camera_orientation(phi = 75*DEGREES, theta=45*DEGREES)
+ normal = Arrow((0,-0.15,-0.25), (-3,0,3), color = YELLOW)
+ plane1 = Polygon(np.array([1,0,2]),np.array([-1,2.5,1]),np.array([-3,2,1]),np.array([-1,-1,2]), color = GREEN_E, fill_color = WHITE, fill_opacity=0.5)
+ plane2 = Polygon(np.array([1,0,2]),np.array([-1,2.5,1]),np.array([-3,2,1]),np.array([-1,-1,2]), color = BLUE, fill_color = WHITE, fill_opacity=0.3)
+ normalLabel = TextMobject(r'$\overrightarrow{n}$').shift((2,2.5,0))
+ pointLabel = TextMobject(r'$P$').shift((2,1.2,0))
+ xlabel = TextMobject(r'$x$').shift(4.5*LEFT + 1.7*DOWN)
+ ylabel = TextMobject(r'$y$').shift(4.5*RIGHT + 1.8*DOWN)
+ zlabel = TextMobject(r'$z$').shift(3.3*UP+0.5*RIGHT)
+
+ normaltext = TextMobject(r'Consider an arbitrary \\ normal vector $\overrightarrow{n}$').scale(0.6).shift(2*UP + 2.5*LEFT)
+ planetext = TextMobject(r'A single vector is normal \\ to infinitely many planes.').scale(0.6).shift(2*UP + 2.5*LEFT)
+ pointtext = TextMobject(r'Given a fixed point $P$, \\ a plane is obtained as:').scale(0.6).shift(2*UP + 2.5*LEFT)
+
+ point = Dot(color = RED).shift((1.6,1.3,0))
+ self.play(FadeIn(axes))
+ self.add_fixed_in_frame_mobjects(xlabel, ylabel, zlabel)
+ self.wait(1)
+ self.play(FadeIn(normal))
+ self.add_fixed_in_frame_mobjects(normalLabel, normaltext)
+ self.play(FadeIn(normaltext))
+ self.wait(2)
+ self.add_fixed_in_frame_mobjects(planetext)
+ self.play(ReplacementTransform(normaltext, planetext), run_time=0.01)
+ self.play(MoveAlongPath(plane1, normal), run_time = 6)
+ self.add_fixed_in_frame_mobjects(pointtext)
+ self.play(ReplacementTransform(planetext, pointtext))
+ self.add_fixed_in_frame_mobjects(point, pointLabel)
+ self.wait(1)
+ self.play(Transform(plane1, plane2))
+ self.wait(2)
+ self.play(FadeOut(axes), FadeOut(plane2), FadeOut(plane1), FadeOut(point), FadeOut(pointLabel), FadeOut(normal), FadeOut(normalLabel), FadeOut(planetext), FadeOut(pointtext), FadeOut(normaltext), FadeOut(VGroup(*[xlabel, ylabel, zlabel])))
+ self.wait(1)
diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file3_intercept_form_plane.gif b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file3_intercept_form_plane.gif
new file mode 100644
index 0000000..a8b7d75
--- /dev/null
+++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file3_intercept_form_plane.gif
Binary files differ
diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file3_intercept_form_plane.py b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file3_intercept_form_plane.py
new file mode 100644
index 0000000..258ac3c
--- /dev/null
+++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file3_intercept_form_plane.py
@@ -0,0 +1,29 @@
+from manimlib.imports import *
+
+class pointnormal(ThreeDScene):
+ def construct(self):
+ axes = ThreeDAxes(x_min = 0, y_min = 0, z_min = 0)
+ self.set_camera_orientation(phi = 75*DEGREES, theta=45*DEGREES)
+
+ plane1 = Polygon(np.array([2,-3,2.5]),np.array([-1.45,2,2.5]),np.array([-0.5,4.5,-0.1]),np.array([3.5,-1,-0.2]), fill_color = WHITE, fill_opacity=0.3)
+
+ xlabel = TextMobject(r'$x$').shift(5*LEFT + 1.5*DOWN)
+ ylabel = TextMobject(r'$y$').shift(5*RIGHT + 1.5*DOWN)
+ zlabel = TextMobject(r'$z$').shift(3.3*UP + 0.5*LEFT)
+
+ zintercept = Dot().shift(2.5*UP)
+ zinterceptlabel = TextMobject(r'$(0,0,c\prime)$').shift(2.8*UP + RIGHT).scale(0.7)
+
+ yintercept = Dot().shift(3.7*RIGHT + 0.925*DOWN)
+ yinterceptlabel = TextMobject(r'$(0,b\prime ,0)$').shift(3.7*RIGHT+1.5*DOWN).scale(0.7)
+
+ xintercept = Dot().shift(2.9*LEFT + 0.75*DOWN)
+ xinterceptlabel = TextMobject(r'$(a\prime ,0,0)$').shift(3*LEFT+1.3*DOWN).scale(0.7)
+
+ self.play(FadeIn(axes), FadeIn(plane1))
+ self.add_fixed_in_frame_mobjects(xlabel, ylabel, zlabel, zintercept, zinterceptlabel, yintercept, yinterceptlabel, xintercept, xinterceptlabel)
+ self.wait(2)
+ self.remove(zintercept, zinterceptlabel, yintercept, yinterceptlabel, xintercept, xinterceptlabel, xlabel, ylabel, zlabel)
+ self.begin_ambient_camera_rotation(rate=0.5)
+ self.wait(5)
+ self.play(FadeOut(axes), FadeOut(plane1))
diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file4_3d_plane.gif b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file4_3d_plane.gif
new file mode 100644
index 0000000..b4c259e
--- /dev/null
+++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file4_3d_plane.gif
Binary files differ
diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file4_3d_plane.py b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file4_3d_plane.py
new file mode 100644
index 0000000..26ad825
--- /dev/null
+++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file4_3d_plane.py
@@ -0,0 +1,49 @@
+from manimlib.imports import *
+
+class pointnormal(ThreeDScene):
+ CONFIG = {
+ 'x_axis_label': '$x$',
+ 'y_axis_label': '$y$'
+ }
+ def construct(self):
+ axes = ThreeDAxes()
+ axes.add(axes.get_axis_labels())
+ self.set_camera_orientation(phi = 75*DEGREES, theta=45*DEGREES)
+
+ plane = Polygon(
+ np.array([2,0,2.7]),
+ np.array([0,0,0.4]),
+ np.array([-3.2,0,0.55]),
+ np.array([-3,-2,2.5]),
+ fill_color = WHITE, fill_opacity = 0.25)
+
+ normal = Arrow((0.25,2,0), (1.5,3.5,0))
+ normalLabel = TextMobject(r'$\overrightarrow{n}$').shift((1.5,2.8,0))
+
+ point = Dot(color = RED).shift((1.6,1.3,0))
+ pointLabel = TextMobject(r'$P_{0}$').shift((2,1.2,0))
+
+ point2 = Dot(color = RED).shift((-0.2,1.8,0))
+ point2Label = TextMobject(r'$P$').shift((-0.3,2,0))
+
+ arrow1 = Arrow((0,-0.25,-0.2), (-2.55,0,1), color = YELLOW).set_stroke(width=3)
+ arrow2 = Arrow((0,0,-0.25), (0.3,0,2), color = YELLOW).set_stroke(width=3)
+ res = Arrow((1.8,1.23,0),(-0.35,1.85,0), color = BLUE).set_stroke(width=3)
+
+ arrow1label = TextMobject(r'$\overrightarrow{r_{0}}$').next_to(arrow2, UP).shift(RIGHT + 0.16*DOWN).scale(0.7)
+ arrow2label = TextMobject(r'$\overrightarrow{r}$').next_to(arrow2, UP).shift(0.7*LEFT).scale(0.7)
+ reslabel = TextMobject(r'$\overrightarrow{r} - \overrightarrow{r_{0}}$').next_to(arrow2, UP).shift(0.7*RIGHT + 1.2*UP).scale(0.7)
+
+ self.play(FadeIn(axes), FadeIn(plane))
+ self.wait(1)
+ self.add_fixed_in_frame_mobjects(normal, normalLabel)
+ self.wait(1)
+ self.add_fixed_in_frame_mobjects(point, pointLabel)
+ self.add_fixed_in_frame_mobjects(point2, point2Label)
+ self.play(Write(arrow1), Write(arrow2))
+ self.add_fixed_in_frame_mobjects(arrow2label, arrow1label)
+ self.wait(1)
+ self.add_fixed_in_frame_mobjects(res, reslabel)
+ self.play(Write(res), FadeIn(reslabel))
+ self.wait(1)
+ self.play(FadeOut(axes), FadeOut(plane), FadeOut(point), FadeOut(pointLabel), FadeOut(normal), FadeOut(normalLabel), FadeOut(point2), FadeOut(point2Label), FadeOut(arrow1label), FadeOut(arrow2label), FadeOut(reslabel), FadeOut(arrow1), FadeOut(arrow2), FadeOut(res)) \ No newline at end of file
diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file5_vector_form_line.gif b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file5_vector_form_line.gif
new file mode 100644
index 0000000..b6fdb51
--- /dev/null
+++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file5_vector_form_line.gif
Binary files differ
diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file5_vector_form_line.py b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file5_vector_form_line.py
new file mode 100644
index 0000000..e25c4eb
--- /dev/null
+++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/equations-of-planes-and-lines/file5_vector_form_line.py
@@ -0,0 +1,47 @@
+from manimlib.imports import *
+
+class line_(ThreeDScene):
+ def construct(self):
+ axes = ThreeDAxes()
+ xlabel = TextMobject(r'$x$').shift(4.5*LEFT + 1.7*DOWN)
+ ylabel = TextMobject(r'$y$').shift(4.5*RIGHT + 1.8*DOWN)
+ zlabel = TextMobject(r'$z$').shift(3.3*UP+0.5*RIGHT)
+
+ self.set_camera_orientation(phi = 75*DEGREES, theta=45*DEGREES)
+ pointLabel = TextMobject(r'$P$').shift((2.28,2.12,0)).scale(0.7)
+ point = Dot(color = RED).shift((1.95,1.9,0))
+
+ vlabel = TextMobject(r'$\overrightarrow{v}$').shift((0.5,1.3,0)).scale(0.7)
+
+ inf_text = TextMobject(r'Infinitely many lines pass \\ through a single point.').scale(0.6).shift(2*UP + 2.5*LEFT)
+ pointtext = TextMobject(r'Given a direction vector $\overrightarrow{v}$, \\ a line is obtained as:').scale(0.6).shift(2*UP + 2.5*LEFT)
+
+
+ line = Line((0.7,0.7,0), (2,3,0)).shift(0.06*UP+0.6*RIGHT)
+ v = Vector((0.8,1,0), color = GREEN_E)
+ #finalLine = Line((-1.56,0,0.5),(-4,0,2.42), color = YELLOW)
+ finalLine = Line((1,0.8,0),(3,3,0), color = YELLOW).shift(0.05*LEFT)
+ self.play(FadeIn(axes))
+ self.add_fixed_in_frame_mobjects(zlabel, ylabel, xlabel)
+ self.wait(1)
+ self.add_fixed_in_frame_mobjects(point, pointLabel)
+ self.wait(1)
+ self.add_fixed_in_frame_mobjects(inf_text)
+ self.wait(1)
+ self.add_fixed_in_frame_mobjects(line)
+
+ for i in range(9):
+ self.play(ApplyMethod(line.rotate, -np.pi/12), run_time = 0.7)
+ if i == 8:
+ self.add_fixed_in_frame_mobjects(pointtext)
+ self.play(ReplacementTransform(inf_text, pointtext))
+ self.add_fixed_in_frame_mobjects(v, vlabel)
+ # if i == 13:
+ # self.add_fixed_in_frame_mobjects(pointtext)
+
+ self.add_fixed_in_frame_mobjects(finalLine)
+ self.play(FadeIn(finalLine))
+ self.play(Transform(line, finalLine), run_time = 4)
+ #self.play(FadeOut(line), FadeIn(finalLine))
+ self.wait(1.5)
+ self.play(FadeOut(VGroup(*[axes, xlabel, ylabel, zlabel, finalLine, v, vlabel, point, pointLabel, pointtext, line])))