Skip to main content

color_interpolation/
color_interpolation.rs

1use 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); // Red
16
17    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    // Show
34    project.show().expect("Failed to render");
35}