color_interpolation/
color_interpolation.rs1use motion_canvas_rs::prelude::*;
2use std::time::Duration;
3
4fn main() {
5 let mut project = Project::default()
6 .with_dimensions(300, 300)
7 .with_fps(60)
8 .with_title("Color Interpolation")
9 .with_cache(true)
10 .close_on_finish();
11
12 let circle = Circle::default()
13 .with_position(Vec2::new(150.0, 150.0))
14 .with_radius(50.0)
15 .with_fill(Color::RED); project.scene.add(Box::new(circle.clone()));
18
19 let duration = Duration::from_secs(1);
20
21 project.scene.video_timeline.add(loop_anim(
22 move || {
23 chain![
24 circle.fill_color.to(Color::YELLOW, duration),
25 circle.fill_color.to(Color::GREEN, duration),
26 circle.fill_color.to(Color::BLUE, duration),
27 circle.fill_color.to(Color::RED, duration),
28 ]
29 },
30 None,
31 ));
32
33 project.show().expect("Failed to render");
35}