that_one_nigga_you_k

algebra

Jan 27th, 2025
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 9.15 KB | None | 0 0
  1. from manim import *
  2.  
  3. config.pixel_height = 1920
  4. config.pixel_width = 1080
  5. config.frame_height = 16
  6. config.frame_width = 9
  7. config.frame_rate = 60
  8.  
  9. class sistemaLinear(Scene):
  10.     def construct(self):  
  11.        
  12.        
  13.         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.")
  14.         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.")
  15.         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.")
  16.         sis4 = 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.")
  17.         primeiraEq = MathTex(r"x + y + z = 4")
  18.         segundaEq = MathTex(r"x^2 + y^2 + z^2 = 14")
  19.         terceiraEq = MathTex(r"x^3 + y^3 + z^3 = 34")
  20.        
  21.         #primeiro grupo
  22.         primeiraEq2 = MathTex(r"(x + y + z)^2 = 4^2", font_size = 36)
  23.         primeiraEq3 = MathTex(r"x^2 + y^2 + z^2 + 2(xy + yz + xz) = 16", font_size = 36)
  24.         primeiraEq4 = MathTex(r"14 + 2(xy + yz + xz) = 16", font_size = 36)
  25.         primeiraEq5 = MathTex(r"xy + yz + xz = 1", font_size = 36)
  26.        
  27.         #segundo grupo
  28.         primeiraEq6 = MathTex(r"(x + y + z)^3 = 4^3", font_size = 36)
  29.         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)
  30.         primeiraEq8 = MathTex(r"34 + 3(x^2(y + z) + y^2(x + z) + z^2(x + y)) + 6xyz = 64", font_size = 28)
  31.         primeiraEq9 = MathTex(r"3(x^2(y + z) + y^2(x + z) + z^2(x + y)) + 6xyz = 30", font_size = 30)
  32.        
  33.         #terceiro grupo
  34.         primeiraEq10 = MathTex(r"3(x^2(4 - x) + y^2(4 - y) + z^2(4 - z)) + 6xyz = 30", font_size = 30)
  35.         primeiraEq11 = MathTex(r"3(4x^2 + 4y^2 + 4z^2) - 3(x^3 + y^3 + z^3) + 6xyz = 30", font_size = 30)
  36.         primeiraEqinter =MathTex(r"12(x^2 + y^2 + z^2) - 3(x^3 + y^3 + z^3) + 6xyz = 30", font_size = 30)
  37.         primeiraEq12 = MathTex(r"4(x^2 + y^2 + z^2) - (x^3 + y^3 + z^3) + 2xyz = 10", font_size = 32)
  38.         primeiraEq13 = MathTex(r"56 - 34 + 2xyz = 10", font_size = 36)
  39.         primeiraEq14 = MathTex(r"xyz = - 6", font_size = 36)
  40.        
  41.         grupoEq1 = VGroup(primeiraEq2, primeiraEq3, primeiraEq4, primeiraEq5)
  42.         grupoEq1.arrange(DOWN, aligned_edge=LEFT, buff=0.45)  # ajustando espaçamento e alianhamento
  43.         grupoEq1.to_corner(UL)
  44.  
  45.         grupoEq3 = VGroup(primeiraEq10, primeiraEq11,primeiraEqinter, primeiraEq12, primeiraEq13, primeiraEq14)
  46.         grupoEq3.arrange(DOWN, aligned_edge=LEFT, buff=0.45)  # ajustando espaçamento e alianhamento
  47.  
  48.         # animar o surgimento
  49.         for i, eq in enumerate(grupoEq1):
  50.            
  51.             self.play(Write(eq))
  52.             self.wait(1)  # ajustar as pausas
  53.            
  54.             if i == 1:
  55.                 #animação pra destacar os elementos ao quadrado
  56.                 #animação pra aparecer o sistema original
  57.                 #desaparece o sistema original
  58.                
  59.                 animacao_quadrados = FadeToColor(primeiraEq3[0][0:8], GOLD, run_time = 1)
  60.                 self.play(animacao_quadrados)
  61.                
  62.                 sistema.move_to(ORIGIN)
  63.                 self.play(Write(sistema), run_time = 1)
  64.        
  65.                 #mudar a cor do 23 ao 33
  66.        
  67.                 mudanca_cor_sistema = FadeToColor(sistema[0][12:20], color= GOLD, run_time = 0.5)
  68.                 reverter_sistema = FadeToColor(sistema[0][12:20], color= WHITE, run_time = 0.5)
  69.        
  70.                 self.play(mudanca_cor_sistema)
  71.                 self.wait(2)
  72.                 self.play(reverter_sistema, Unwrite(sistema),  run_time = 1)
  73.  
  74.             if i == 2:
  75.                 cor_quatorze = FadeToColor(primeiraEq4[0][0:2], GOLD, run_time = 0.15)
  76.                 self.play(cor_quatorze)
  77.  
  78.         num_equacioes = len(grupoEq1)  # ver o total de linhas
  79.         for i in range(num_equacioes - 1):  # iterar até a penultima desaparecer
  80.             self.play(Unwrite(grupoEq1[i]))
  81.             self.wait(1)
  82.  
  83.  
  84.         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
  85.        
  86.         grupoEq2 = VGroup(primeiraEq6, primeiraEq7, primeiraEq8, primeiraEq9)
  87.         grupoEq2.arrange(DOWN,aligned_edge=LEFT, buff=0.45)  # ajustando espaçamento e alianhamento
  88.         grupoEq2.next_to(primeiraEq5, DOWN, aligned_edge=LEFT, buff=0.5)
  89.        
  90.         # animar o surgimento
  91.         for i, eq in enumerate(grupoEq2):
  92.             #colorir os termos ao cubo e salientar o xyz
  93.             self.play(Write(eq))
  94.             self.wait(1)  # ajustar as pausas
  95.            
  96.             if i == 1:
  97.                 #colorir as partes ao cubo
  98.                 #mostrar o sistema
  99.                 #colorir o sistema
  100.                 #apagar o sistema
  101.                
  102.                 animacao_cubos = FadeToColor(primeiraEq7[0][0:8], GREEN, run_time = 1)
  103.                 self.play(animacao_cubos)
  104.                
  105.                
  106.                 sis.move_to(ORIGIN)
  107.                 self.play(Write(sis), run_time = 1)
  108.                
  109.                 mudanca_cor_sistema = FadeToColor(sis[0][23:31], color= GREEN, run_time = 0.5)
  110.                 reverter_sistema = FadeToColor(sis[0][23:31], color= WHITE, run_time = 0.5)
  111.                
  112.                 self.play(mudanca_cor_sistema)
  113.                 self.wait(2)
  114.                 self.play(reverter_sistema, Unwrite(sis),  run_time = 1)
  115.            
  116.             if i == 2:
  117.                 cor_34 = FadeToColor(primeiraEq8[0][0:2], GREEN, run_time = 0.15)
  118.                 self.play(cor_34)
  119.                
  120.        
  121.          
  122.         num_equacioes = len(grupoEq2)  # ver o total de linhas
  123.         for i in range(num_equacioes - 1):  # iterar até a penultima desaparecer
  124.             self.play(Unwrite(grupoEq2[i]))
  125.             self.wait(1)
  126.            
  127.         #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
  128.        
  129.         #primeiraEq9[0][27:31].set_color(GOLD)
  130.        
  131.         self.play(ApplyMethod(primeiraEq9[0][27:31].set_color_by_gradient, (RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE)),run_time=1)
  132.         #self.play(primeiraEq9.animate.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE), run_time =1)
  133.        
  134.         # Add a pause
  135.         self.wait(2)
  136.        
  137.         self.play(primeiraEq9.animate.next_to(primeiraEq5, DOWN, aligned_edge=LEFT, buff=0.5), run_time = 1)
  138.        
  139.         grupoEq3.next_to(primeiraEq9, DOWN, aligned_edge=LEFT, buff=0.5)
  140.        
  141.         for i, eq in enumerate(grupoEq3):
  142.             self.play(Write(grupoEq3[i]))
  143.             self.wait(1)
  144.        
  145.             if i == 3:
  146.                 #colorir o quadrado e cubo
  147.                 #aparecer o sistema original
  148.                 #colorir o sistema original
  149.                 #sumir o sistema original
  150.                
  151.                 self.play(ApplyMethod(primeiraEq12[0][0:22].set_color_by_gradient, GOLD_D, GREEN),run_time=1)
  152.                
  153.                 sis3.move_to(ORIGIN)
  154.                 self.play(Write(sis3), run_time = 1)
  155.                                
  156.                 #23 ao 31 são cubos laranjas
  157.                 #12 ao 20 são quadrados dourados
  158.                 cor_sis_c = FadeToColor(sis3[0][23:31], GREEN, run_time = 1)
  159.                 cor_sis_q = FadeToColor(sis3[0][12:20], GOLD, run_time = 1)
  160.                
  161.                 self.play(cor_sis_c, cor_sis_q)
  162.                 self.wait(1)
  163.                 self.play(Unwrite(sis3), run_time = 1)
  164.                
  165.             if i == 4:
  166.                
  167.                 #cor_14_34 = ApplyMethod(primeiraEq13[0][0:5].set_color_by_gradient(GOLD_D, GREEN), run_time = 1)
  168.                 self.play(ApplyMethod(primeiraEq13[0][0:5].set_color_by_gradient, GOLD_D, GREEN),run_time=1)
  169.            
  170.             if i == 5:
  171.                
  172.                
  173.                 self.play(primeiraEq14.animate.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE), run_time = 1)
  174.            
  175.            
  176.         num_equacioes3 = len(grupoEq3)  
  177.         #desescrevendo menos o ultimo
  178.         for i in range(num_equacioes3 - 1):
  179.             self.play(Unwrite(grupoEq3[i]))
  180.             self.wait(1)
  181.            
  182.         self.play(
  183.             Unwrite(primeiraEq9),
  184.             primeiraEq14.animate.next_to(primeiraEq5, DOWN, aligned_edge=LEFT, buff=0.5),
  185.             run_time=1
  186.         )
  187.        
  188.         eae = Tex("?", font_size = 400)
  189.         #desescrevendo
  190.         sis4.move_to(ORIGIN)
  191.         self.play(Write(sis4), run_time = 2)
  192.        
  193.         eae.next_to(sis4, DOWN, buff = 1)
  194.         self.play(Write(eae), run_time =  3)
  195.  
  196.         self.wait(2)
  197.        
  198.         leftover = VGroup()
  199.         for obj in self.mobjects:
  200.             if issubclass(obj.__class__, VMobject):
  201.                 leftover += obj
  202.         self.play(Unwrite(leftover))
  203.        
  204.         self.wait(1)
  205.        
  206.        
  207.  
Add Comment
Please, Sign In to add comment