Add voronoi rendering
This commit is contained in:
parent
88986e026c
commit
f7be06caa4
22
src/main.rs
22
src/main.rs
|
@ -60,7 +60,8 @@ async fn main() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dd.update();
|
dd.update();
|
||||||
dd.draw();
|
//dd.draw_delaunay();
|
||||||
|
dd.draw_voronoi();
|
||||||
next_frame().await;
|
next_frame().await;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -442,7 +443,7 @@ impl fmt::Debug for Triangle {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl DelaunayDemo {
|
impl DelaunayDemo {
|
||||||
fn draw(&self) {
|
fn draw_delaunay(&self) {
|
||||||
clear_background(BG);
|
clear_background(BG);
|
||||||
let mut highlight_segments = Vec::new();
|
let mut highlight_segments = Vec::new();
|
||||||
for triangle in &self.triangles {
|
for triangle in &self.triangles {
|
||||||
|
@ -487,6 +488,23 @@ impl DelaunayDemo {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn draw_voronoi(&self) {
|
||||||
|
clear_background(BG);
|
||||||
|
for neighbors in self.adjacency.values() {
|
||||||
|
if let (Occupant(tri1), Friend(tri2)) = neighbors {
|
||||||
|
let (center1, _) = tri1.circumcenter();
|
||||||
|
let (center2, _) = tri2.circumcenter();
|
||||||
|
draw_line(
|
||||||
|
center1.x as f32,
|
||||||
|
center1.y as f32,
|
||||||
|
center2.x as f32,
|
||||||
|
center2.y as f32,
|
||||||
|
3.0, FG
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn update(&mut self) {
|
fn update(&mut self) {
|
||||||
if self.poisoned {
|
if self.poisoned {
|
||||||
return
|
return
|
||||||
|
|
Loading…
Reference in a new issue