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}