rustvision 0.1.1

Simple library for interacting with images, vertices, and polygons (and some other stuff related to computer vision).
Documentation
use rustvision::{
    image::Image,
    rgb, save_pnm_p3, save_pnm_p6,
    shapes::{Line, Polygon, Rectangle},
    vec2,
};

fn main() {
    let mut img = Image::new(400, 400);

    let rect = Rectangle::new(vec2![50.0, 40.0], 100, 70, rgb!(255, 0, 0));
    let line = Line::new(vec2![200.0, 200.0], vec2![250.0, 230.0]).with_color(rgb!(0, 0, 255));

    let mut polygon = Polygon::from_points(vec![
        vec2![20.0, 250.0],
        vec2![50.0, 350.0],
        vec2![80.0, 280.0],
        vec2![110.0, 350.0],
        vec2![140.0, 250.0],
        vec2![110.0, 300.0],
        vec2![80.0, 250.0],
        vec2![50.0, 300.0],
    ]);
    polygon.set_color(rgb!(0, 255, 0));
    polygon.set_filled(true);

    let mut quat = Polygon::from_points(vec![
        vec2![200.0, 40.0],
        vec2![200.0, 100.0],
        vec2![300.0, 100.0],
        vec2![300.0, 40.0],
    ]);
    quat.set_color(rgb!(0, 255, 0));
    quat.set_filled(true);

    img.draw(&rect);
    img.draw(&line);
    img.draw(&polygon);
    img.draw(&quat);

    save_pnm_p3!("assets/simple2.ppm", img);
    save_pnm_p6!("assets/simple3.ppm", img);
}