research-index.rs
984 B · rust · 28 lines
1use mrlycore::errors::Result;2use mrlyfig::board::{Board, Frame};3use mrlyfig::{ink, save, Grid};4use mrlymath::two::designs;56fn panel(board: &mut Board, frame: Frame, level: usize, gap: f64) -> Result<()> {7 let cells = designs::create(495, 3, level, 0, 3)?;8 let side = cells.width();9 assert_eq!(side, 3usize.pow(level as u32));10 Grid::new(frame, side, side, gap)11 .paint(board, &cells, |kind| (kind != 0).then_some(ink::yellow()));12 Ok(())13}1415fn main() -> Result<()> {16 let mut board = Board::square();17 let area = board.frame(0.08);18 let gutter = area.w * 0.036;19 let side = (area.w - gutter) / 2.0;20 let gaps = [0.16, 0.10, 0.055, 0.0];21 for (slot, gap) in gaps.iter().enumerate() {22 let x = area.x + (slot % 2) as f64 * (side + gutter);23 let y = area.y + (slot / 2) as f64 * (side + gutter);24 panel(&mut board, Frame::new(x, y, side, side), slot + 1, *gap)?;25 }26 save("research-index", &board)?;27 Ok(())28}