[Init] - Introduction to nannou

This commit is contained in:
adnanioricce 2024-12-29 20:37:08 -03:00
commit af9af809fb
4 changed files with 2842 additions and 0 deletions

1
.gitignore vendored Normal file

@ -0,0 +1 @@
/target

2782
Cargo.lock generated Normal file

File diff suppressed because it is too large Load Diff

8
Cargo.toml Normal file

@ -0,0 +1,8 @@
[package]
name = "hello-nannou"
version = "0.1.0"
authors = ["adnan adnangonzagadevio@gmail.com"]
edition = "2021"
[dependencies]
nannou = "0.19.0"

51
src/main.rs Normal file

@ -0,0 +1,51 @@
use nannou::prelude::*;
fn main() {
nannou::app(model).update(update).simple_window(view).run();
}
fn rotated_rect(draw: &Draw, x: f32, y: f32, w: f32, h: f32, degrees: f32) {
draw.rect()
.x_y(x, y)
.w_h(h, w)
.z_degrees(degrees)
.color(PLUM);
}
struct Model {}
fn model(_app: &App) -> Model {
Model {}
}
fn update(_app: &App, _model: &mut Model, _update: Update) {}
fn view(_app: &App, _model: &Model, frame: Frame) {
let draw = _app.draw();
draw.background().color(WHITE);
rotated_rect(&draw, 0.0, 0.0, 100.0, 100.0, 45.0);
draw.rect().x_y(0.0, 0.0).w_h(100.0, 100.0).color(RED);
draw.rect().x_y(50.0, 50.0).w_h(100.0, 100.0).color(GREEN);
let side = 100.0;
let top_left = pt2(-300.0, 200.0);
let offset = vec2(side / 2.0, -side / 2.0);
let xy = top_left + offset;
draw.rect().xy(xy).w_h(side, side).color(BLUE);
let win = _app.window_rect();
let pad = 25.0;
let win_p = win.pad(pad);
let r = Rect::from_w_h(100.0, 100.0).top_left_of(win_p);
draw.rect().xy(r.xy()).wh(r.wh()).color(PALEVIOLETRED);
draw.rect()
.xy(win_p.xy())
.wh(win_p.wh())
.color(rgba(0.3, 0.4, 0.7, 0.5));
let square = Rect::from_w_h(100.0, 100.0).top_left_of(win_p);
draw.rect().xy(square.xy()).wh(square.wh()).color(PURPLE);
let circle = square.below(square).shift_y(-pad);
draw.ellipse().xy(circle.xy()).wh(circle.wh()).color(SALMON);
draw.to_frame(_app, &frame).unwrap();
//frame.clear(PURPLE);
}