Use put_object!
This commit is contained in:
parent
2a08b6c379
commit
0efa513130
|
|
@ -5,6 +5,7 @@ use flo_draw::*;
|
|||
use glam::*;
|
||||
|
||||
use crate::types::FlatTraceResult;
|
||||
use refraction::mathx::MatExt;
|
||||
use riemann::{trace_iter, Metric};
|
||||
use tube::metric::Tube;
|
||||
use tube::Space;
|
||||
|
|
@ -61,6 +62,12 @@ pub fn main() {
|
|||
})
|
||||
.collect();
|
||||
let space = Space { tube, objs };
|
||||
let cam1 = put_object(&space.tube, vec2(-500., 0.), Mat2::IDENTITY);
|
||||
let cam2 = put_object(
|
||||
&space.tube,
|
||||
vec2(-2.5 * tube.outer_radius, 1.25 * tube.external_halflength),
|
||||
mat2(vec2(1., -1.), vec2(1., 1.)),
|
||||
);
|
||||
|
||||
gc.canvas_height(500.0);
|
||||
gc.transform(Transform2D::rotate(FRAC_PI_2));
|
||||
|
|
@ -69,15 +76,9 @@ pub fn main() {
|
|||
// gc.stroke_color(Color::Rgba(1.0, 0.5, 0.0, 0.5));
|
||||
// draw_fan(gc, &tube, vec2(-500.0, 0.0), vec2(1.0, 0.0), 1.0);
|
||||
gc.stroke_color(Color::Rgba(1.0, 0.5, 0.0, 1.0));
|
||||
draw_fan_2(gc, &space, vec2(-500.0, 0.0), vec2(1.0, 0.0), 1.0);
|
||||
draw_fan_2(gc, &space, cam1, 1.0);
|
||||
gc.stroke_color(Color::Rgba(0.5, 1.0, 0.0, 1.0));
|
||||
draw_fan_2(
|
||||
gc,
|
||||
&space,
|
||||
vec2(-2.5 * tube.outer_radius, 1.25 * tube.external_halflength),
|
||||
vec2(1.0, -1.0),
|
||||
1.0,
|
||||
);
|
||||
draw_fan_2(gc, &space, cam2, 1.0);
|
||||
draw_track(gc, &space, vec2(-500.0, 0.0), vec2(1.0, 0.2));
|
||||
draw_track(gc, &space, vec2(-500.0, 0.0), vec2(1.0, 0.5));
|
||||
draw_track(
|
||||
|
|
@ -210,7 +211,6 @@ fn draw_ray_2(gc: &mut Vec<Draw>, space: &Space, base: Vec2, dir: Vec2) {
|
|||
}
|
||||
|
||||
let mut hits = Vec::<Draw>::new();
|
||||
let dir = space.tube.globalize(base, dir);
|
||||
gc.new_path();
|
||||
gc.move_to(base.x, base.y);
|
||||
let mut ray = Ray {
|
||||
|
|
@ -261,11 +261,10 @@ fn draw_ray_2(gc: &mut Vec<Draw>, space: &Space, base: Vec2, dir: Vec2) {
|
|||
gc.stroke();
|
||||
}
|
||||
|
||||
fn draw_fan_2(gc: &mut Vec<Draw>, space: &Space, base: Vec2, dir: Vec2, spread: f32) {
|
||||
let dir = dir.normalize();
|
||||
let v = vec2(-dir.y, dir.x);
|
||||
fn draw_fan_2(gc: &mut Vec<Draw>, space: &Space, camera: Location, spread: f32) {
|
||||
for y in itertools_num::linspace(-spread, spread, 101) {
|
||||
draw_ray_2(gc, space, base, dir + y * v);
|
||||
let ray_dir = vec2(1., y);
|
||||
draw_ray_2(gc, space, camera.pos, camera.rot * ray_dir);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user