Compare commits
No commits in common. "9906e3f6112058d83531121682e6843f51173eab" and "92214054f9e471245d08331417406fe385bfa65f" have entirely different histories.
9906e3f611
...
92214054f9
|
@ -236,7 +236,7 @@ dependencies = [
|
||||||
"daggy 0.5.0",
|
"daggy 0.5.0",
|
||||||
"fnv",
|
"fnv",
|
||||||
"instant",
|
"instant",
|
||||||
"num 0.3.1",
|
"num",
|
||||||
"pistoncore-input",
|
"pistoncore-input",
|
||||||
"rusttype 0.8.3",
|
"rusttype 0.8.3",
|
||||||
]
|
]
|
||||||
|
@ -1075,7 +1075,7 @@ dependencies = [
|
||||||
"gif",
|
"gif",
|
||||||
"jpeg-decoder",
|
"jpeg-decoder",
|
||||||
"num-iter",
|
"num-iter",
|
||||||
"num-rational 0.3.2",
|
"num-rational",
|
||||||
"num-traits",
|
"num-traits",
|
||||||
"png",
|
"png",
|
||||||
"scoped_threadpool",
|
"scoped_threadpool",
|
||||||
|
@ -1587,25 +1587,11 @@ version = "0.3.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8b7a8e9be5e039e2ff869df49155f1c06bd01ade2117ec783e56ab0932b67a8f"
|
checksum = "8b7a8e9be5e039e2ff869df49155f1c06bd01ade2117ec783e56ab0932b67a8f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"num-bigint 0.3.2",
|
"num-bigint",
|
||||||
"num-complex 0.3.1",
|
"num-complex",
|
||||||
"num-integer",
|
"num-integer",
|
||||||
"num-iter",
|
"num-iter",
|
||||||
"num-rational 0.3.2",
|
"num-rational",
|
||||||
"num-traits",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "num"
|
|
||||||
version = "0.4.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606"
|
|
||||||
dependencies = [
|
|
||||||
"num-bigint 0.4.2",
|
|
||||||
"num-complex 0.4.0",
|
|
||||||
"num-integer",
|
|
||||||
"num-iter",
|
|
||||||
"num-rational 0.4.0",
|
|
||||||
"num-traits",
|
"num-traits",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -1620,17 +1606,6 @@ dependencies = [
|
||||||
"num-traits",
|
"num-traits",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "num-bigint"
|
|
||||||
version = "0.4.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "74e768dff5fb39a41b3bcd30bb25cf989706c90d028d1ad71971987aa309d535"
|
|
||||||
dependencies = [
|
|
||||||
"autocfg",
|
|
||||||
"num-integer",
|
|
||||||
"num-traits",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "num-complex"
|
name = "num-complex"
|
||||||
version = "0.3.1"
|
version = "0.3.1"
|
||||||
|
@ -1640,15 +1615,6 @@ dependencies = [
|
||||||
"num-traits",
|
"num-traits",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "num-complex"
|
|
||||||
version = "0.4.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "26873667bbbb7c5182d4a37c1add32cdf09f841af72da53318fdb81543c15085"
|
|
||||||
dependencies = [
|
|
||||||
"num-traits",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "num-integer"
|
name = "num-integer"
|
||||||
version = "0.1.44"
|
version = "0.1.44"
|
||||||
|
@ -1677,19 +1643,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07"
|
checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"autocfg",
|
"autocfg",
|
||||||
"num-bigint 0.3.2",
|
"num-bigint",
|
||||||
"num-integer",
|
|
||||||
"num-traits",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "num-rational"
|
|
||||||
version = "0.4.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "d41702bd167c2df5520b384281bc111a4b5efcf7fbc4c9c222c815b07e0a6a6a"
|
|
||||||
dependencies = [
|
|
||||||
"autocfg",
|
|
||||||
"num-bigint 0.4.2",
|
|
||||||
"num-integer",
|
"num-integer",
|
||||||
"num-traits",
|
"num-traits",
|
||||||
]
|
]
|
||||||
|
@ -2540,15 +2494,6 @@ dependencies = [
|
||||||
"utils",
|
"utils",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "subtitled25"
|
|
||||||
version = "0.1.0"
|
|
||||||
dependencies = [
|
|
||||||
"nannou",
|
|
||||||
"num 0.4.0",
|
|
||||||
"utils",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "subtitled3"
|
name = "subtitled3"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
|
|
@ -3,3 +3,7 @@
|
||||||
this is a bunch of nannou projects
|
this is a bunch of nannou projects
|
||||||
|
|
||||||
i'll add a list with pictures here soon
|
i'll add a list with pictures here soon
|
||||||
|
|
||||||
|
you'll notice that the numbers i've put on fedi and the ones here are different :)
|
||||||
|
|
||||||
|
also don't criticize my code pls i'm sensitive and i Will cry
|
||||||
|
|
|
@ -20,10 +20,9 @@ fn model(_app: &App) -> Model {
|
||||||
fn advance(point: Vec2, t: f32) -> Vec2 {
|
fn advance(point: Vec2, t: f32) -> Vec2 {
|
||||||
// pick a random point
|
// pick a random point
|
||||||
let count = ((t * 0.125).trunc() as usize % 5) + 3;
|
let count = ((t * 0.125).trunc() as usize % 5) + 3;
|
||||||
let mut points = (0..count)
|
let points = (0..count)
|
||||||
.map(|i| (TAU * i as f32 / count as f32).sin_cos().to_vec2())
|
.map(|i| (TAU * i as f32 / count as f32).sin_cos().to_vec2())
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
points.push(Vec2::ZERO);
|
|
||||||
|
|
||||||
let random = points[random_range(0, count)];
|
let random = points[random_range(0, count)];
|
||||||
|
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
[package]
|
|
||||||
name = "subtitled25"
|
|
||||||
version = "0.1.0"
|
|
||||||
edition = "2018"
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
nannou = "0.17"
|
|
||||||
num = "0.4.0"
|
|
||||||
utils = { path = "../utils" }
|
|
|
@ -1,50 +0,0 @@
|
||||||
use nannou::prelude::*;
|
|
||||||
use num::complex::*;
|
|
||||||
use utils::*;
|
|
||||||
|
|
||||||
fn main() {
|
|
||||||
nannou::app(model)
|
|
||||||
.update(update)
|
|
||||||
.simple_window(view)
|
|
||||||
.size(800, 800)
|
|
||||||
.run();
|
|
||||||
}
|
|
||||||
|
|
||||||
struct Model {}
|
|
||||||
|
|
||||||
const BALL_SIZE: f32 = 3.0;
|
|
||||||
|
|
||||||
fn model(_app: &App) -> Model {
|
|
||||||
Model {}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn update(app: &App, _model: &mut Model, _update: Update) {
|
|
||||||
let _t = app.elapsed_frames() as f32 / 60.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
fn shader(i: usize, j: usize, w: usize, h: usize, t: f32) -> Hsl {
|
|
||||||
let x = (i as f32 / w as f32) - 0.5;
|
|
||||||
let y = (j as f32 / h as f32) - 0.5;
|
|
||||||
let x = x * 7.0;
|
|
||||||
let y = y * 7.0;
|
|
||||||
let mut v = Complex::new(y, x);
|
|
||||||
|
|
||||||
let a = map_sin(t * 0.5, 0.0, TAU);
|
|
||||||
let c = Complex::from_polar(0.7885, a);
|
|
||||||
|
|
||||||
let iters = map_sin(t * 0.1, 10.0, 100.0);
|
|
||||||
|
|
||||||
for i in 0..(iters as usize) {
|
|
||||||
v = v.powi(2) + c;
|
|
||||||
|
|
||||||
if v.norm() > 10.0 {
|
|
||||||
return hsl(i as f32 / iters, 0.5, 0.5);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
hsl(0.0, 0.0, 0.0)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn view(app: &App, _model: &Model, frame: Frame) {
|
|
||||||
utils::shaders::run(app, frame, BALL_SIZE, shader, vec2)
|
|
||||||
}
|
|
|
@ -4,7 +4,6 @@ pub mod drawing;
|
||||||
pub mod lsystems;
|
pub mod lsystems;
|
||||||
pub mod record;
|
pub mod record;
|
||||||
pub mod sequences;
|
pub mod sequences;
|
||||||
pub mod shaders;
|
|
||||||
pub mod turtle;
|
pub mod turtle;
|
||||||
|
|
||||||
use nannou::prelude::*;
|
use nannou::prelude::*;
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
use nannou::prelude::*;
|
|
||||||
|
|
||||||
pub fn run<S, T>(app: &App, frame: Frame, ball_size: f32, shader: S, tile_movement: T)
|
|
||||||
where
|
|
||||||
S: Fn(usize, usize, usize, usize, f32) -> Hsl,
|
|
||||||
T: Fn(f32, f32) -> Vec2,
|
|
||||||
{
|
|
||||||
let t = frame.nth() as f32 / 120.0;
|
|
||||||
|
|
||||||
let draw = app.draw();
|
|
||||||
draw.background().color(BLACK);
|
|
||||||
|
|
||||||
let (l, top, w, h) = app.window_rect().l_t_w_h();
|
|
||||||
|
|
||||||
let cols = (w / ball_size) as usize;
|
|
||||||
let rows = (h / ball_size) as usize;
|
|
||||||
|
|
||||||
for i in 0..cols {
|
|
||||||
for j in 0..rows {
|
|
||||||
let x = l + j as f32 * ball_size;
|
|
||||||
let y = top - i as f32 * ball_size;
|
|
||||||
let p = tile_movement(x, y);
|
|
||||||
|
|
||||||
let color = shader(i, j, cols, rows, t);
|
|
||||||
|
|
||||||
draw.quad()
|
|
||||||
.points(
|
|
||||||
p + ball_size * vec2(1., 1.),
|
|
||||||
p + ball_size * vec2(1., -1.),
|
|
||||||
p + ball_size * vec2(-1., -1.),
|
|
||||||
p + ball_size * vec2(-1., 1.),
|
|
||||||
)
|
|
||||||
.xy(p)
|
|
||||||
.color(color);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
draw.to_frame(app, &frame).unwrap();
|
|
||||||
super::record::record(app, &frame);
|
|
||||||
}
|
|
Loading…
Reference in New Issue