This commit is contained in:
numzero 2024-05-05 14:43:07 +03:00
parent 1d19ad7968
commit 363ee4914b

View File

@ -31,7 +31,7 @@ fn draw_ray(gc: &mut Vec<Draw>, space: &impl Metric, base: Vec2, dir: Vec2) {
for pt in trace_iter(space, base, dir, 1.0).take(10000) { for pt in trace_iter(space, base, dir, 1.0).take(10000) {
gc.line_to(pt.x, pt.y); gc.line_to(pt.x, pt.y);
if pt.abs().cmpgt(Vec2::splat(1000.0)).any() { if pt.abs().cmpgt(Vec2::splat(1000.0)).any() {
break break;
} }
} }
gc.stroke(); gc.stroke();
@ -95,15 +95,15 @@ impl Metric for Coil {
let r = pos.length(); let r = pos.length();
let dir = pos.normalize(); let dir = pos.normalize();
let s = smoothbox (r, vec2(self.r - self.w, self.r + self.w), self.m); let s = smoothbox(r, vec2(self.r - self.w, self.r + self.w), self.m);
let t = 1.0.lerp(self.r / r / self.scale, s); let t = 1.0.lerp(self.r / r / self.scale, s);
Decomp2{ Decomp2 {
ortho: Mat2::from_cols_array(&[ ortho: Mat2::from_cols_array(&[
dir.x, -dir.y, dir.x, -dir.y,
dir.y, dir.x, dir.y, dir.x,
]), ]),
diag : vec2(1.0, t), diag: vec2(1.0, t),
} }
} }
} }
@ -117,7 +117,7 @@ struct Rect {
impl Metric for Rect { impl Metric for Rect {
fn halfmetric(&self, pos: Vec2) -> Decomp2 { fn halfmetric(&self, pos: Vec2) -> Decomp2 {
let s = smoothbox(pos.x, vec2(-self.r.x, self.r.x), self.m.x) * smoothbox(pos.y, vec2(-self.r.y, self.r.y), self.m.y); let s = smoothbox(pos.x, vec2(-self.r.x, self.r.x), self.m.x) * smoothbox(pos.y, vec2(-self.r.y, self.r.y), self.m.y);
Decomp2{ Decomp2 {
ortho: Mat2::IDENTITY, ortho: Mat2::IDENTITY,
diag: vec2(1.0, self.scale.powf(-s)), diag: vec2(1.0, self.scale.powf(-s)),
} }
@ -233,7 +233,7 @@ mod riemann {
fn convolute(t: Tens2, v: Vec2) -> Vec2 { fn convolute(t: Tens2, v: Vec2) -> Vec2 {
vec2( vec2(
v.dot(t[0] * v), v.dot(t[0] * v),
v.dot(t[1] * v) v.dot(t[1] * v),
) )
} }