research-crop.rs

1.1 kB · rust · 35 lines

1use mrlycore::errors::Result;2use mrlyfig::{ink, save, Board, Grid};3use mrlymath::shape::{self, Frac, Region};4use mrlymath::two::designs;56fn main() -> Result<()> {7    let mut board = Board::square();8    let area = board.frame(0.08);9    let cells = designs::create(7, 3, 4, 0, 2)?;10    let side = cells.width();11    assert_eq!(side, 81);12    let types = cells.types();13    assert_eq!(types.sum(), 4096);14    let ball = shape::named("ball", 2, Frac::new(1, 2))?;15    let tally = shape::census(&ball, types);16    assert_eq!(tally.filled[Region::In as usize], 2908);17    assert_eq!(tally.filled[Region::Cut as usize], 204);18    let map = shape::regions(&ball, &[side, side]);19    let grid = Grid::new(area, side, side, 0.10);20    for row in 0..side {21        for col in 0..side {22            if types.get(&[row, col]) == 0 {23                continue;24            }25            let tone = match map.get(&[row, col]) {26                2 => ink::yellow(),27                1 => ink::orange(),28                _ => continue,29            };30            grid.fill(&mut board, col, row, tone);31        }32    }33    save("research-crop", &board)?;34    Ok(())35}