wiki-sierpinski-carpet.rs

577 B · rust · 19 lines

1use mrlycore::errors::Result;2use mrlyfig::{ink, save, Board, Grid};3use mrlymath::two::designs;45const CODE: u128 = 495;6const LEVEL: usize = 4;78fn main() -> Result<()> {9    let mut board = Board::square();10    let area = board.frame(0.08);11    let design = designs::create(CODE, 3, LEVEL, 0, 3)?;12    let side = design.width();13    assert_eq!(side, 81);14    assert_eq!(design.types().sum(), 4096);15    Grid::new(area, side, side, 0.0)16        .paint(&mut board, &design, |kind| (kind != 0).then_some(ink::blue()));17    save("wiki-sierpinski-carpet", &board)?;18    Ok(())19}