mirror of
https://github.com/3b1b/manim.git
synced 2025-09-19 04:41:56 +00:00
Beginning of cramer
This commit is contained in:
parent
06535df542
commit
b5d72b92ac
1 changed files with 163 additions and 0 deletions
163
active_projects/eola2/cramer.py
Normal file
163
active_projects/eola2/cramer.py
Normal file
|
@ -0,0 +1,163 @@
|
|||
from big_ol_pile_of_manim_imports import *
|
||||
|
||||
|
||||
X_COLOR = GREEN
|
||||
Y_COLOR = RED
|
||||
Z_COLOR = BLUE
|
||||
OUTPUT_COLOR = MAROON_B
|
||||
|
||||
|
||||
def get_cramer_matrix(matrix, output_vect):
|
||||
"""
|
||||
The inputs matrix and output_vect should be Matrix mobjects
|
||||
"""
|
||||
# new_matrix = np.append(
|
||||
# matrix.mob_matrix[:, :2],
|
||||
# output_vect,
|
||||
# axis=1
|
||||
# )
|
||||
pass
|
||||
|
||||
|
||||
class LinearSystem(VGroup):
|
||||
CONFIG = {
|
||||
"matrix_config": {
|
||||
"element_to_mobject": Integer,
|
||||
},
|
||||
"dimensions": 3,
|
||||
"min_int": -9,
|
||||
"max_int": 10,
|
||||
"height": 4,
|
||||
}
|
||||
|
||||
def __init__(self, matrix=None, output_vect=None, **kwargs):
|
||||
VGroup.__init__(self, **kwargs)
|
||||
dim = self.dimensions
|
||||
if matrix is None:
|
||||
matrix = np.random.randint(
|
||||
self.min_int,
|
||||
self.max_int,
|
||||
size=(dim, dim)
|
||||
)
|
||||
self.matrix_mobject = IntegerMatrix(matrix)
|
||||
self.equals = TexMobject("=")
|
||||
self.equals.scale(1.5)
|
||||
|
||||
colors = [X_COLOR, Y_COLOR, Z_COLOR][:dim]
|
||||
self.input_vect_mob = Matrix(np.array(["x", "y", "z"]))
|
||||
self.input_vect_mob.elements.set_color_by_gradient(*colors)
|
||||
|
||||
if output_vect is None:
|
||||
output_vect = np.random.randint(self.min_int, self.max_int, size=(dim, 1))
|
||||
self.output_vect_mob = IntegerMatrix(output_vect)
|
||||
self.output_vect_mob.elements.set_color(OUTPUT_COLOR)
|
||||
|
||||
for mob in self.matrix_mobject, self.input_vect_mob, self.output_vect_mob:
|
||||
mob.scale_to_fit_height(self.height)
|
||||
|
||||
self.add(
|
||||
self.matrix_mobject,
|
||||
self.input_vect_mob,
|
||||
self.equals,
|
||||
self.output_vect_mob,
|
||||
)
|
||||
self.arrange_submobjects(RIGHT, buff=SMALL_BUFF)
|
||||
|
||||
|
||||
# Scenes
|
||||
|
||||
|
||||
class LeaveItToComputers(TeacherStudentsScene):
|
||||
CONFIG = {
|
||||
"random_seed": 1,
|
||||
}
|
||||
|
||||
def construct(self):
|
||||
system = LinearSystem(height=3)
|
||||
system.next_to(self.pi_creatures, UP)
|
||||
system.generate_target()
|
||||
system.target.scale(0.5)
|
||||
system.target.to_corner(UL)
|
||||
|
||||
self.play(
|
||||
Write(system),
|
||||
self.teacher.change, "raise_right_hand",
|
||||
self.get_student_changes("pondering", "thinking", "hooray")
|
||||
)
|
||||
self.wait(2)
|
||||
self.play(
|
||||
PiCreatureSays(
|
||||
self.teacher, "Let the computer \\\\ handle it",
|
||||
target_mode="shruggie",
|
||||
),
|
||||
MoveToTarget(system, rate_func=running_start),
|
||||
self.get_student_changes(*["confused"] * 3)
|
||||
)
|
||||
self.wait(3)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Add table
Reference in a new issue