@@ -42,6 +42,219 @@ def construct(self):
4242 self .play (dot .animate .move_to (ORIGIN ))
4343
4444
45+ class ConvertExample (Slide ):
46+ def tinywait (self ):
47+ self .wait (0.1 )
48+
49+ def construct (self ):
50+
51+ title = VGroup (
52+ Text ("From Manim animations" , t2c = {"From" : BLUE }),
53+ Text ("to slides presentation" , t2c = {"to" : BLUE }),
54+ Text ("with Manim Slides" , t2w = {"[-12:]" : BOLD }, t2c = {"[-13:]" : YELLOW }),
55+ ).arrange (DOWN )
56+
57+ step_1 = Text ("1. In your scenes file, import Manim Slides" )
58+ step_2 = Text ("2. Replace Scene with Slide" )
59+ step_3 = Text ("3. In construct, add pauses where you need" )
60+ step_4 = Text ("4. You can also create loops" )
61+ step_5 = Text ("5. Render you scene with Manim" )
62+ step_6 = Text ("6. Open your presentation with Manim Slides" )
63+
64+ for step in [step_1 , step_2 , step_3 , step_4 , step_5 , step_6 ]:
65+ step .scale (0.5 ).to_corner (UL )
66+
67+ step = step_1
68+
69+ self .play (FadeIn (title ))
70+
71+ self .pause ()
72+
73+ code = Code (
74+ code = """from manim import *
75+
76+
77+ class Example(Scene):
78+ def construct(self):
79+ dot = Dot()
80+ self.add(dot)
81+
82+ self.play(Indicate(dot, scale_factor=2))
83+
84+ square = Square()
85+ self.play(Transform(dot, square))
86+
87+ self.play(Rotate(square, angle=PI/2))
88+ """ ,
89+ language = "python" ,
90+ )
91+
92+ code_step_1 = Code (
93+ code = """from manim import *
94+ from manim_slides import Slide
95+
96+ class Example(Scene):
97+ def construct(self):
98+ dot = Dot()
99+ self.add(dot)
100+
101+ self.play(Indicate(dot, scale_factor=2))
102+
103+ square = Square()
104+ self.play(Transform(dot, square))
105+
106+ self.play(Rotate(square, angle=PI/2))
107+ """ ,
108+ language = "python" ,
109+ )
110+
111+ code_step_2 = Code (
112+ code = """from manim import *
113+ from manim_slides import Slide
114+
115+ class Example(Slide):
116+ def construct(self):
117+ dot = Dot()
118+ self.add(dot)
119+
120+ self.play(Indicate(dot, scale_factor=2))
121+
122+ square = Square()
123+ self.play(Transform(dot, square))
124+
125+ self.play(Rotate(square, angle=PI/2))
126+ """ ,
127+ language = "python" ,
128+ )
129+
130+ code_step_3 = Code (
131+ code = """from manim import *
132+ from manim_slides import Slide
133+
134+ class Example(Slide):
135+ def construct(self):
136+ dot = Dot()
137+ self.add(dot)
138+
139+ self.play(Indicate(dot, scale_factor=2))
140+ self.pause()
141+ square = Square()
142+ self.play(Transform(dot, square))
143+ self.pause()
144+ self.play(Rotate(square, angle=PI/2))
145+ """ ,
146+ language = "python" ,
147+ )
148+
149+ code_step_4 = Code (
150+ code = """from manim import *
151+ from manim_slides import Slide
152+
153+ class Example(Slide):
154+ def construct(self):
155+ dot = Dot()
156+ self.add(dot)
157+ self.start_loop()
158+ self.play(Indicate(dot, scale_factor=2))
159+ self.end_loop()
160+ square = Square()
161+ self.play(Transform(dot, square))
162+ self.pause()
163+ self.play(Rotate(square, angle=PI/2))
164+ """ ,
165+ language = "python" ,
166+ )
167+
168+ code_step_5 = Code (
169+ code = "manim example.py Example" ,
170+ language = "console" ,
171+ )
172+
173+ code_step_6 = Code (
174+ code = "manim-slides Example" ,
175+ language = "console" ,
176+ )
177+
178+ or_text = Text ("or generate HTML presentation" ).scale (0.5 )
179+
180+ code_step_7 = Code (
181+ code = "manim-slides convert Example slides.html --open" ,
182+ language = "console" ,
183+ ).shift (DOWN )
184+
185+ self .clear ()
186+
187+ self .play (FadeIn (code ))
188+ self .tinywait ()
189+ self .pause ()
190+
191+ self .play (FadeIn (step , shift = RIGHT ))
192+ self .play (Transform (code , code_step_1 ))
193+ self .tinywait ()
194+ self .pause ()
195+
196+ self .play (Transform (step , step_2 ))
197+ self .play (Transform (code , code_step_2 ))
198+ self .tinywait ()
199+ self .pause ()
200+
201+ self .play (Transform (step , step_3 ))
202+ self .play (Transform (code , code_step_3 ))
203+ self .tinywait ()
204+ self .pause ()
205+
206+ self .play (Transform (step , step_4 ))
207+ self .play (Transform (code , code_step_4 ))
208+ self .tinywait ()
209+ self .pause ()
210+
211+ self .play (Transform (step , step_5 ))
212+ self .play (Transform (code , code_step_5 ))
213+ self .tinywait ()
214+ self .pause ()
215+
216+ self .play (Transform (step , step_6 ))
217+ self .play (Transform (code , code_step_6 ))
218+ self .play (code .animate .shift (UP ), FadeIn (code_step_7 ), FadeIn (or_text ))
219+ self .tinywait ()
220+ self .pause ()
221+
222+ watch_text = Text ("Watch result on next slides!" ).shift (2 * DOWN ).scale (0.5 )
223+
224+ self .start_loop ()
225+ self .play (FadeIn (watch_text ))
226+ self .play (FadeOut (watch_text ))
227+ self .end_loop ()
228+ self .clear ()
229+
230+ dot = Dot ()
231+ self .add (dot )
232+ self .start_loop ()
233+ self .play (Indicate (dot , scale_factor = 2 ))
234+ self .end_loop ()
235+ square = Square ()
236+ self .play (Transform (dot , square ))
237+ self .remove (dot )
238+ self .add (square )
239+ self .tinywait ()
240+ self .pause ()
241+ self .play (Rotate (square , angle = PI / 4 ))
242+ self .tinywait ()
243+ self .pause ()
244+
245+ learn_more_text = (
246+ VGroup (
247+ Text ("Learn more about Manim Slides:" ),
248+ Text ("https://github.com/jeertmans/manim-slides" , color = YELLOW ),
249+ )
250+ .arrange (DOWN )
251+ .scale (0.75 )
252+ )
253+
254+ self .play (Transform (square , learn_more_text ))
255+ self .tinywait ()
256+
257+
45258# For ThreeDExample, things are different
46259
47260if not MANIMGL :
0 commit comments