Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from manim import *
- config.pixel_height = 1920
- config.pixel_width = 1080
- config.frame_height = 16
- config.frame_width = 9
- config.frame_rate = 60
- class sistemaLinear(Scene):
- def construct(self):
- sistema = MathTex(r"\left\{ \begin{aligned} &x + y + z = 4 \\ &x^2 + y^2 + z^2 = 14 \\ &x^3 + y^3 + z^3 = 34 \end{aligned} \right.")
- sis = MathTex(r"\left\{ \begin{aligned} &x + y + z = 4 \\ &x^2 + y^2 + z^2 = 14 \\ &x^3 + y^3 + z^3 = 34 \end{aligned} \right.")
- sis3 = MathTex(r"\left\{ \begin{aligned} &x + y + z = 4 \\ &x^2 + y^2 + z^2 = 14 \\ &x^3 + y^3 + z^3 = 34 \end{aligned} \right.")
- primeiraEq = MathTex(r"x + y + z = 4")
- segundaEq = MathTex(r"x^2 + y^2 + z^2 = 14")
- terceiraEq = MathTex(r"x^3 + y^3 + z^3 = 34")
- #primeiro grupo
- primeiraEq2 = MathTex(r"(x + y + z)^2 = 4^2", font_size = 36)
- primeiraEq3 = MathTex(r"x^2 + y^2 + z^2 + 2(xy + yz + xz) = 16", font_size = 36)
- primeiraEq4 = MathTex(r"14 + 2(xy + yz + xz) = 16", font_size = 36)
- primeiraEq5 = MathTex(r"xy + yz + xz = 1", font_size = 36)
- #segundo grupo
- primeiraEq6 = MathTex(r"(x + y + z)^3 = 4^3", font_size = 36)
- primeiraEq7 = MathTex(r"x^3 + y^3 + z^3 + 3(x^2(y + z) + y^2(x + z) + z^2(x + y)) + 6xyz = 64", font_size = 26)
- primeiraEq8 = MathTex(r"34 + 3(x^2(y + z) + y^2(x + z) + z^2(x + y)) + 6xyz = 64", font_size = 28)
- primeiraEq9 = MathTex(r"3(x^2(y + z) + y^2(x + z) + z^2(x + y)) + 6xyz = 30", font_size = 30)
- #terceiro grupo
- primeiraEq10 = MathTex(r"3(x^2(4 - x) + y^2(4 - y) + z^2(4 - z)) + 6xyz = 30", font_size = 30)
- primeiraEq11 = MathTex(r"3(4x^2 + 4y^2 + 4z^2) - 3(x^3 + y^3 + z^3) + 6xyz = 30", font_size = 30)
- primeiraEqinter =MathTex(r"12(x^2 + y^2 + z^2) - 3(x^3 + y^3 + z^3) + 6xyz = 30", font_size = 30)
- primeiraEq12 = MathTex(r"4(x^2 + y^2 + z^2) - (x^3 + y^3 + z^3) + 2xyz = 10", font_size = 32)
- primeiraEq13 = MathTex(r"14 - 34 + 2xyz = 10", font_size = 36)
- primeiraEq14 = MathTex(r"xyz = - 6", font_size = 36)
- grupoEq1 = VGroup(primeiraEq2, primeiraEq3, primeiraEq4, primeiraEq5)
- grupoEq1.arrange(DOWN, aligned_edge=LEFT, buff=0.45) # ajustando espaçamento e alianhamento
- grupoEq1.to_corner(UL)
- grupoEq3 = VGroup(primeiraEq10, primeiraEq11,primeiraEqinter, primeiraEq12, primeiraEq13, primeiraEq14)
- grupoEq3.arrange(DOWN, aligned_edge=LEFT, buff=0.45) # ajustando espaçamento e alianhamento
- # animar o surgimento
- for i, eq in enumerate(grupoEq1):
- self.play(Write(eq))
- self.wait(1) # ajustar as pausas
- if i == 1:
- #animação pra destacar os elementos ao quadrado
- #animação pra aparecer o sistema original
- #desaparece o sistema original
- animacao_quadrados = FadeToColor(primeiraEq3[0][0:8], GOLD, run_time = 1)
- self.play(animacao_quadrados)
- sistema.move_to(ORIGIN)
- self.play(Write(sistema), run_time = 1)
- #mudar a cor do 23 ao 33
- mudanca_cor_sistema = FadeToColor(sistema[0][12:20], color= GOLD, run_time = 0.5)
- reverter_sistema = FadeToColor(sistema[0][12:20], color= WHITE, run_time = 0.5)
- self.play(mudanca_cor_sistema)
- self.wait(2)
- self.play(reverter_sistema, Unwrite(sistema), run_time = 1)
- if i == 2:
- cor_quatorze = FadeToColor(primeiraEq4[0][0:2], GOLD, run_time = 0.15)
- self.play(cor_quatorze)
- num_equacioes = len(grupoEq1) # ver o total de linhas
- for i in range(num_equacioes - 1): # iterar até a penultima desaparecer
- self.play(Unwrite(grupoEq1[i]))
- self.wait(1)
- self.play(primeiraEq5.animate.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE).to_corner(UL), run_time=1), #indo pra começo da tela e mudando de cor
- grupoEq2 = VGroup(primeiraEq6, primeiraEq7, primeiraEq8, primeiraEq9)
- grupoEq2.arrange(DOWN,aligned_edge=LEFT, buff=0.45) # ajustando espaçamento e alianhamento
- grupoEq2.next_to(primeiraEq5, DOWN, aligned_edge=LEFT, buff=0.5)
- # animar o surgimento
- for i, eq in enumerate(grupoEq2):
- #colorir os termos ao cubo e salientar o xyz
- self.play(Write(eq))
- self.wait(1) # ajustar as pausas
- if i == 1:
- #colorir as partes ao cubo
- #mostrar o sistema
- #colorir o sistema
- #apagar o sistema
- animacao_cubos = FadeToColor(primeiraEq7[0][0:8], GREEN, run_time = 1)
- self.play(animacao_cubos)
- sis.move_to(ORIGIN)
- self.play(Write(sis), run_time = 1)
- mudanca_cor_sistema = FadeToColor(sis[0][23:31], color= GREEN, run_time = 0.5)
- reverter_sistema = FadeToColor(sis[0][23:31], color= WHITE, run_time = 0.5)
- self.play(mudanca_cor_sistema)
- self.wait(2)
- self.play(reverter_sistema, Unwrite(sis), run_time = 1)
- if i == 2:
- cor_34 = FadeToColor(primeiraEq8[0][0:2], GREEN, run_time = 0.15)
- self.play(cor_34)
- num_equacioes = len(grupoEq2) # ver o total de linhas
- for i in range(num_equacioes - 1): # iterar até a penultima desaparecer
- self.play(Unwrite(grupoEq2[i]))
- self.wait(1)
- #self.play(primeiraEq9.animate.set_color_by_gradient(PURPLE, ORANGE, YELLOW, GREEN, BLUE, RED).next_to(primeiraEq5, DOWN, aligned_edge=LEFT, buff=0.45)) #indo pra baixo da equação anterior
- #primeiraEq9[0][27:31].set_color(GOLD)
- self.play(ApplyMethod(primeiraEq9[0][27:31].set_color_by_gradient, (RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE)),run_time=1)
- #self.play(primeiraEq9.animate.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE), run_time =1)
- # Add a pause
- self.wait(2)
- self.play(primeiraEq9.animate.next_to(primeiraEq5, DOWN, aligned_edge=LEFT, buff=0.5), run_time = 1)
- grupoEq3.next_to(primeiraEq9, DOWN, aligned_edge=LEFT, buff=0.5)
- for i, eq in enumerate(grupoEq3):
- self.play(Write(grupoEq3[i]))
- self.wait(1)
- if i == 3:
- #colorir o quadrado e cubo
- #aparecer o sistema original
- #colorir o sistema original
- #sumir o sistema original
- self.play(ApplyMethod(primeiraEq12[0][0:22].set_color_by_gradient, GOLD_D, GREEN),run_time=1)
- sis3.move_to(ORIGIN)
- self.play(Write(sis3), run_time = 1)
- #23 ao 31 são cubos laranjas
- #12 ao 20 são quadrados dourados
- cor_sis_c = FadeToColor(sis3[0][23:31], GREEN, run_time = 1)
- cor_sis_q = FadeToColor(sis3[0][12:20], GOLD, run_time = 1)
- self.play(cor_sis_c, cor_sis_q)
- self.wait(1)
- self.play(Unwrite(sis3), run_time = 1)
- if i == 4:
- #cor_14_34 = ApplyMethod(primeiraEq13[0][0:5].set_color_by_gradient(GOLD_D, GREEN), run_time = 1)
- self.play(ApplyMethod(primeiraEq13[0][0:5].set_color_by_gradient, GOLD_D, GREEN),run_time=1)
- if i == 5:
- self.play(primeiraEq14.animate.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE), run_time = 1)
- self.wait(2)
Add Comment
Please, Sign In to add comment