392 lines
12 KiB
Python

from manim import *
class LSgraph1(Scene):
def construct(self):
# self.camera.background_color = "WHITE"
ax = Axes(
x_range=[-0.3, 10.3, 1],
y_range=[-0.3, 5.3, 1],
x_length=10.6,
axis_config={
"include_numbers": True,
"color": BLACK,
},
)
self.camera.background_color = WHITE
axes_lables = ax.get_axis_labels().set_color(BLACK)
dot1 = Dot(point=ax.c2p(2, 1.3, 0), color=BLUE)
dot2 = Dot(point=ax.c2p(3, 1.6, 0), color=BLUE)
dot3 = Dot(point=ax.c2p(5, 2.0, 0), color=BLUE)
dot4 = Dot(point=ax.c2p(8, 4.7, 0), color=BLUE)
dot5 = Dot(point=ax.c2p(10, 4.2, 0), color=BLUE)
function_graph = ax.plot(lambda x: 0.5 * x, color=BLACK)
plot = VGroup(ax, axes_lables, dot1, dot2, dot3, dot4, dot5, function_graph)
self.add(plot)
class LSgraph2(ThreeDScene):
def construct(self):
# self.camera.background_color = "WHITE"
ax = ThreeDAxes(
x_range=[-0.3, 10.3, 1],
y_range=[-0.3, 10.3, 1],
z_range=[-0.3, 10.3, 1],
x_length=10.6,
axis_config={
"include_numbers": True,
"color": BLACK,
},
)
self.camera.background_color = WHITE
self.set_camera_orientation(
phi=56 * DEGREES, theta=-30 * DEGREES, gamma=-7 * DEGREES, zoom=0.5
)
axes_lables = ax.get_axis_labels().set_color(BLACK)
plane = Surface(
lambda u, v: ax.c2p(u, v, u * 0),
u_range=[2, 8],
v_range=[2, 8],
checkerboard_colors=[BLUE, BLUE],
fill_opacity=0.75,
stroke_width=0,
)
vector = Arrow3D(ax.c2p(3, 3, 0), ax.c2p(6, 6, 3), color=RED)
vector1 = Arrow3D(ax.c2p(3, 3, 0), ax.c2p(6, 6, 0), color=GREEN)
line = Line(ax.c2p(6, 6, 0), ax.c2p(6, 6, 3), color=ORANGE)
self.add(ax, axes_lables, vector, vector1, plane, line)
class Detgraph1(Scene):
def construct(self):
ax = Axes(
x_range=[-5.3, 5.3, 1],
y_range=[-5.3, 5.3, 1],
x_length=7,
y_length=7,
axis_config={
"include_numbers": True,
"color": BLACK,
},
)
x = ax.get_x_axis()
x.numbers.set_color(BLACK)
y = ax.get_y_axis()
y.numbers.set_color(BLACK)
self.camera.background_color = WHITE
axes_lables = ax.get_axis_labels().set_color(BLACK)
vec1 = Arrow3D(start=ax.c2p(0, 0, 0), end=ax.c2p(0, 1, 0), color=RED)
vec2 = Arrow3D(start=ax.c2p(0, 0, 0), end=ax.c2p(1, 0, 0), color=BLUE)
plane = Surface(
lambda u, v: ax.c2p(u, v, u * 0),
u_range=[0, 1],
v_range=[0, 1],
checkerboard_colors=[GREEN, GREEN],
fill_opacity=0.75,
stroke_width=0,
)
text = MathTex(
r"\begin{bmatrix} 1 & 0\\ 0 & 1\end{bmatrix}", color=BLACK
).move_to(ax.c2p(-2, 2, 0))
self.add(ax, axes_lables, vec1, vec2, plane, text)
class Detgraph2(Scene):
def construct(self):
ax = Axes(
x_range=[-5.3, 5.3, 1],
y_range=[-5.3, 5.3, 1],
x_length=7,
y_length=7,
axis_config={
"include_numbers": True,
"color": BLACK,
},
)
x = ax.get_x_axis()
x.numbers.set_color(BLACK)
y = ax.get_y_axis()
y.numbers.set_color(BLACK)
self.camera.background_color = WHITE
axes_lables = ax.get_axis_labels().set_color(BLACK)
vec1 = Arrow3D(start=ax.c2p(0, 0, 0), end=ax.c2p(0, 1, 0), color=RED)
vec2 = Arrow3D(start=ax.c2p(0, 0, 0), end=ax.c2p(1, 0, 0), color=BLUE)
plane1 = Surface(
lambda u, v: ax.c2p(u, v, u * 0),
u_range=[0, 1],
v_range=[0, 1],
checkerboard_colors=[GREEN, GREEN],
fill_opacity=0.75,
stroke_width=0,
)
vec3 = Arrow3D(start=ax.c2p(0, 0, 0), end=ax.c2p(0, 2, 0), color=PURPLE)
vec4 = Arrow3D(start=ax.c2p(0, 0, 0), end=ax.c2p(3, 0, 0), color=PINK)
plane2 = Surface(
lambda u, v: ax.c2p(u, v, u * 0),
u_range=[0, 3],
v_range=[0, 2],
checkerboard_colors=[YELLOW, YELLOW],
fill_opacity=0.75,
stroke_width=0,
)
text = MathTex(
r"\mathbf{A} \begin{bmatrix} 3 & 0\\ 0 & 2\end{bmatrix}", color=BLACK
).move_to(ax.c2p(-2.5, 2, 0))
self.add(ax, axes_lables, plane2, plane1, vec4, vec3, vec2, vec1, text)
class Detgraph3(Scene):
def construct(self):
ax = Axes(
x_range=[-5.3, 5.3, 1],
y_range=[-5.3, 5.3, 1],
x_length=7,
y_length=7,
axis_config={
"include_numbers": True,
"color": BLACK,
},
)
x = ax.get_x_axis()
x.numbers.set_color(BLACK)
y = ax.get_y_axis()
y.numbers.set_color(BLACK)
self.camera.background_color = WHITE
axes_lables = ax.get_axis_labels().set_color(BLACK)
vec1 = Arrow3D(start=ax.c2p(0, 0, 0), end=ax.c2p(0, 1, 0), color=RED)
vec2 = Arrow3D(start=ax.c2p(0, 0, 0), end=ax.c2p(1, 0, 0), color=BLUE)
plane1 = Surface(
lambda u, v: ax.c2p(u, v, u * 0),
u_range=[0, 1],
v_range=[0, 1],
checkerboard_colors=[GREEN, GREEN],
fill_opacity=0.75,
stroke_width=0,
)
vec3 = Arrow3D(start=ax.c2p(0, 0, 0), end=ax.c2p(1, 1, 0), color=PURPLE)
vec4 = Arrow3D(start=ax.c2p(0, 0, 0), end=ax.c2p(1, 0, 0), color=PINK)
plane2 = Polygon(
ax.c2p(0, 0, 0),
ax.c2p(1, 0, 0),
ax.c2p(2, 1, 0),
ax.c2p(1, 1, 0),
fill_color=YELLOW,
fill_opacity=0.75,
color=YELLOW,
)
text = MathTex(
r"\mathbf{B} \begin{bmatrix} 1 & 1\\ 0 & 1\end{bmatrix}", color=BLACK
).move_to(ax.c2p(-2.5, 2, 0))
self.add(ax, axes_lables, plane2, plane1, vec4, vec3, vec2, vec1, text)
class Detgraph4(Scene):
def construct(self):
ax = Axes(
x_range=[-5.3, 5.3, 1],
y_range=[-5.3, 5.3, 1],
x_length=7,
y_length=7,
axis_config={
"include_numbers": True,
"color": BLACK,
},
)
x = ax.get_x_axis()
x.numbers.set_color(BLACK)
y = ax.get_y_axis()
y.numbers.set_color(BLACK)
self.camera.background_color = WHITE
axes_lables = ax.get_axis_labels().set_color(BLACK)
vec1 = Arrow3D(start=ax.c2p(0, 0, 0), end=ax.c2p(0, 1, 0), color=RED)
vec2 = Arrow3D(start=ax.c2p(0, 0, 0), end=ax.c2p(1, 0, 0), color=BLUE)
plane1 = Surface(
lambda u, v: ax.c2p(u, v, u * 0),
u_range=[0, 1],
v_range=[0, 1],
checkerboard_colors=[GREEN, GREEN],
fill_opacity=0.75,
stroke_width=0,
)
vec3 = Arrow3D(start=ax.c2p(0, 0, 0), end=ax.c2p(1, 1, 0), color=PURPLE)
vec4 = Arrow3D(start=ax.c2p(0, 0, 0), end=ax.c2p(2, -1, 0), color=PINK)
plane2 = Polygon(
ax.c2p(0, 0, 0),
ax.c2p(2, -1, 0),
ax.c2p(3, 0, 0),
ax.c2p(1, 1, 0),
fill_color=YELLOW,
fill_opacity=0.75,
color=YELLOW,
)
text = MathTex(
r"\mathbf{C} \begin{bmatrix} 1 & 2\\ 1 & -1\end{bmatrix}", color=BLACK
).move_to(ax.c2p(-2.5, 2, 0))
self.add(ax, axes_lables, plane2, plane1, vec4, vec3, vec2, vec1, text)
class Detgraph5(Scene):
def construct(self):
ax = Axes(
x_range=[-5.3, 5.3, 1],
y_range=[-5.3, 5.3, 1],
x_length=7,
y_length=7,
axis_config={
"include_numbers": True,
"color": BLACK,
},
)
x = ax.get_x_axis()
x.numbers.set_color(BLACK)
y = ax.get_y_axis()
y.numbers.set_color(BLACK)
self.camera.background_color = WHITE
axes_lables = ax.get_axis_labels().set_color(BLACK)
vec1 = Arrow3D(start=ax.c2p(0, 0, 0), end=ax.c2p(0, 1, 0), color=RED)
vec2 = Arrow3D(start=ax.c2p(0, 0, 0), end=ax.c2p(1, 0, 0), color=BLUE)
plane1 = Surface(
lambda u, v: ax.c2p(u, v, u * 0),
u_range=[0, 1],
v_range=[0, 1],
checkerboard_colors=[GREEN, GREEN],
fill_opacity=0.75,
stroke_width=0,
)
vec3 = Arrow3D(start=ax.c2p(0, 0, 0), end=ax.c2p(4, 2, 0), color=PURPLE)
vec4 = Arrow3D(start=ax.c2p(0, 0, 0), end=ax.c2p(2, 1, 0), color=PINK)
text = MathTex(
r"\mathbf{C} \begin{bmatrix} 4 & 2\\ 2 & 1\end{bmatrix}", color=BLACK
).move_to(ax.c2p(-2.5, 2, 0))
self.add(ax, axes_lables, plane1, vec3, vec4, vec2, vec1, text)
class Detgraph6(Scene):
def construct(self):
self.camera.background_color = WHITE
text1 = MathTex(
r"\begin{bmatrix} a & b & c\\ d & e & f\\ g & h & i\\ \end{bmatrix} \begin{matrix} a & b\\ d & e\\ g & h\\ \end{matrix}",
color=BLACK,
).scale(0.5)
text2 = (
MathTex(
r"\Rightarrow a \cdot e \cdot i + b \cdot f \cdot g + c \cdot d \cdot h - g \cdot e \cdot c - h \cdot f \cdot a - i \cdot d \cdot b",
color=BLACK,
)
.move_to([0, -1, 0])
.scale(0.5)
)
arrow1 = Arrow(
[0, 0, 0],
[1.2, -0.9, 0],
max_tip_length_to_length_ratio=0.1,
stroke_width=0.7,
color=RED,
).move_to([-0.4, -0.1, 0])
arrow2 = Arrow(
[0, 0, 0],
[1.2, -0.9, 0],
max_tip_length_to_length_ratio=0.1,
stroke_width=0.7,
color=RED,
).move_to([0, -0.1, 0])
arrow3 = Arrow(
[0, 0, 0],
[1.2, -0.9, 0],
max_tip_length_to_length_ratio=0.1,
stroke_width=0.7,
color=RED,
).move_to([0.4, -0.1, 0])
arrow4 = Arrow(
[0, 0, 0],
[1.2, 0.9, 0],
max_tip_length_to_length_ratio=0.1,
stroke_width=0.7,
color=BLUE,
).move_to([-0.3, -0.1, 0])
arrow5 = Arrow(
[0, 0, 0],
[1.2, 0.9, 0],
max_tip_length_to_length_ratio=0.1,
stroke_width=0.7,
color=BLUE,
).move_to([0.1, -0.1, 0])
arrow6 = Arrow(
[0, 0, 0],
[1.2, 0.9, 0],
max_tip_length_to_length_ratio=0.1,
stroke_width=0.7,
color=BLUE,
).move_to([0.5, -0.1, 0])
self.add(text1, text2, arrow1, arrow2, arrow3, arrow4, arrow5, arrow6)
class Detgraph7(Scene):
def construct(self):
self.camera.background_color = WHITE
text1 = MathTex(
r"\begin{bmatrix} a & b & 0 & 0\\ c & d & 0 & 0 \\ 0 & 0 & e & f \\ 0 & 0 & g & h \end{bmatrix}",
color=BLACK,
).scale(0.5)
text2 = (
MathTex(
r"\Rightarrow \text{det } \begin{bmatrix} a & b \\ c & d \end{bmatrix} \cdot \text{det } \begin{bmatrix} e & f \\ g & h \end{bmatrix}",
color=BLACK,
)
.move_to([0, -1, 0])
.scale(0.5)
)
box1 = Polygon([0, 0, 0], [0.6, 0, 0], [0.6, 0.6, 0], [0, 0.6, 0]).move_to(
[-0.36, 0.3, 0]
)
box2 = Polygon(
[0, 0, 0], [0.6, 0, 0], [0.6, 0.6, 0], [0, 0.6, 0], color=RED
).move_to([0.36, -0.3, 0])
box3 = Polygon([0, 0, 0], [0.6, 0, 0], [0.6, 0.6, 0], [0, 0.6, 0]).move_to(
[-0.3, -1, 0]
)
box4 = Polygon(
[0, 0, 0], [0.6, 0, 0], [0.6, 0.6, 0], [0, 0.6, 0], color=RED
).move_to([1.13, -1, 0])
self.add(text1, text2, box1, box2, box3, box4)