kanoko 0.1.0

Generate a random pattern inspired by the traditional Japanese kanoko pattern
Documentation
use kanoko::{
    Canvas, Coordinate, hex_to_alpha_color,
    point_set::lattice::{Index, Lattice},
    shape::KanokoShape,
};
use rand::Rng;

fn main() {
    let background_color = hex_to_alpha_color("#ffc36c").unwrap();

    let grid = Lattice {
        grid_size: Index { x: 10, y: 10 },
        cell_size: 120.0,
    };

    let mut canvas = Canvas::new(
        Coordinate {
            x: 2560.0,
            y: 1440.0,
        },
        background_color,
        grid,
    );

    for _ in 0..3 {
        canvas.add_shape(KanokoShape::new(
            120.0,
            |_| hex_to_alpha_color("#20131a").unwrap(),
            Some(15.0),
        ));
    }
    for _ in 0..3 {
        canvas.add_shape(KanokoShape::new(
            60.0,
            |_| hex_to_alpha_color("#c06a2f").unwrap(),
            Some(15.0),
        ));
    }

    let document = canvas.render(|_| rand::rng().random_bool(0.9));
    svg::save("examples/leopard.svg", &document).unwrap();
}