from manimlib.imports import * class Subspace_Example(Scene): def construct(self): sq = Square(side = 2, color=BLACK).shift(2*LEFT) sq.set_fill(color=RED,opacity=350) line1=Line(color=BLACK).shift(2*LEFT) line1.rotate(np.pi/2) line2=Line(color=BLACK).shift(2.5*LEFT+0.5*UP) line2.scale(0.5) line3=Line(color=BLACK).shift(+1.5*LEFT) line3.scale(0.5) a1=TextMobject(r"$a_1$",color=BLACK).scale(0.5).shift(3.4*LEFT+0.7*UP) a2=TextMobject(r"$a_2$",color=BLACK).scale(0.5).shift(3.4*LEFT+0.3*DOWN) a3=TextMobject(r"$a_3$",color=BLACK).scale(0.5).shift(0.7*LEFT+0.5*DOWN) a4=TextMobject(r"$a_4$",color=BLACK).scale(0.5).shift(0.7*LEFT+0.5*UP) big_rect1 = Rectangle().scale(3.3).shift(0.3*DOWN) big_rect1.set_fill(color=GOLD,opacity=350) big_rect2=Rectangle().scale(2.7).shift(0.5*DOWN) big_rect2.set_fill(color=GREY,opacity=350) vec_space=TextMobject("$Vector Space$",color=BLACK).scale(0.73).shift(4.65*RIGHT+2.6*UP) sub=TextMobject(r"$Subspace$",color=BLACK).scale(0.73).shift(3.8*RIGHT+1.7*UP) self.play(ShowCreation(big_rect1),ShowCreation(vec_space)) self.play(ShowCreation(big_rect2),ShowCreation(sub)) self.play(ShowCreation(sq),ShowCreation(line1),ShowCreation(line2),ShowCreation(line3),ShowCreation(a1),ShowCreation(a2),ShowCreation(a3),ShowCreation(a4)) rec = Rectangle(color=BLACK).scale(0.5).shift(1*RIGHT) rec.rotate(np.pi/2) rec.set_fill(color=BLUE,opacity=350) line4=Line(color=BLACK).shift(1*RIGHT).rotate(np.pi/2) line5=Line(color=BLACK).scale(0.25).shift(0.75*RIGHT) line6=Line(color=BLACK).scale(0.25).shift(0.5*DOWN+1.25*RIGHT) b1=TextMobject(r"$b_1$",color=BLACK).scale(0.5).shift(0.3*RIGHT+0.5*UP) b2=TextMobject(r"$b_2$",color=BLACK).scale(0.5).shift(0.3*RIGHT+0.5*DOWN) b3=TextMobject(r"$b_3$",color=BLACK).scale(0.5).shift(1.67*RIGHT+0.8*DOWN) b4=TextMobject(r"$b_4$",color=BLACK).scale(0.5).shift(1.67*RIGHT+0.5*UP) self.play(ShowCreation(rec),ShowCreation(line4),ShowCreation(line5),ShowCreation(line6),ShowCreation(b1),ShowCreation(b2),ShowCreation(b3),ShowCreation(b4)) self.wait(1) text1=TextMobject(r"$a_1 + a_2 = a_3 + a_4$",color=BLACK).scale(0.5).shift(2*LEFT+1.5*DOWN) text2=TextMobject(r"$b_1 + b_2 = b_3 + b_4$",color=BLACK).scale(0.5).shift(1.5*RIGHT+1.5*DOWN) self.play(ShowCreation(text1),ShowCreation(text2)) self.wait(3) self.play(FadeOut(text1),FadeOut(text2)) rec.shift(3*LEFT+2.01*DOWN) line4.shift(3*LEFT+2*DOWN) line5.shift(3*LEFT+2*DOWN) line6.shift(3*LEFT+2*DOWN) b1.shift(3.1*LEFT+2.1*DOWN) b2.shift(3.1*LEFT+2.1*DOWN) b3.shift(2.9*LEFT+2*DOWN) b4.shift(2.9*LEFT+2.3*DOWN) self.play(ShowCreation(rec),ShowCreation(line4),ShowCreation(line5),ShowCreation(line6),ShowCreation(b1),ShowCreation(b2),ShowCreation(b3),ShowCreation(b4)) self.wait(2) text3=TextMobject(r"$(a_1 + a_2) + (b_1 + b_2) = (a_3 + a_4) + (b_3 + b_4)$",color=BLACK).scale(0.5).shift(2.5*RIGHT+0.5*DOWN) text3=TextMobject(r"$(a_1 + a_2) + (b_1 + b_2) = (a_3 + a_4) + (b_3 + b_4)$",color=BLACK).scale(0.5).shift(2.5*RIGHT+0.5*DOWN) text4=TextMobject("Vector Addition",color=BLACK).scale(0.8).shift(2.5*RIGHT+0.5*UP) self.play(ShowCreation(text3),ShowCreation(text4)) self.wait(3) rec.set_fill(color=GREY,opacity=350) self.play(FadeOut(text3),FadeOut(text4),FadeOut(line4),FadeOut(line5),FadeOut(line6),FadeOut(rec),FadeOut(b4),FadeOut(b3),FadeOut(b2),FadeOut(b1)) sq1=Square(color=BLACK).scale(0.5).shift(1.5*LEFT+1.5*UP) sq1.set_fill(color=RED,opacity=350) sq2=Square(color=BLACK).scale(0.5).shift(1.5*LEFT+1.5*DOWN) sq2.set_fill(color=RED,opacity=350) rec1=Rectangle(height=0.5,width=1,color=BLACK).shift(2.5*LEFT+1.2*UP) rec1.set_fill(color=RED,opacity=350) rec2=Rectangle(height=1.5,width=1,color=BLACK) rec2.set_fill(color=RED,opacity=350).shift(2.5*LEFT+1.5*DOWN) self.play(ShowCreation(sq1),ShowCreation(sq2),ShowCreation(rec1),ShowCreation(rec2)) a=TextMobject(r"$a_1$",color=BLACK).scale(0.5).shift(3.4*LEFT+1.2*UP) b=TextMobject(r"$a_2$",color=BLACK).scale(0.5).shift(3.4*LEFT+1.4*DOWN) c=TextMobject(r"$a_3$",color=BLACK).scale(0.5).shift(0.7*LEFT+1.4*DOWN) d=TextMobject(r"$a_4$",color=BLACK).scale(0.5).shift(0.7*LEFT+1.4*UP) self.play(ShowCreation(a),ShowCreation(b),ShowCreation(c),ShowCreation(d)) self.wait(2.3) text4=TextMobject("Scalar Multiplication",color=BLACK).scale(0.8).shift(2.5*RIGHT+0.5*UP) text5=TextMobject(r"$\implies 2(a_1 + a_2) = 2(a_3 + a_4)$",color=BLACK).scale(0.5).shift(2*RIGHT+0.5*DOWN) text6=TextMobject(r"$(a_1 + a_1) + (a_2 + a_2) = (a_3 + a_3) + (a_4 +a_4)$",color=BLACK).scale(0.5).shift(2.5*RIGHT) self.play(ShowCreation(text4),ShowCreation(text5),ShowCreation(text6)) self.wait(3)