Live data from Hacker News

Generating Voronoi diagrams using Fortune's algorithm

redpenguin101.github.io

11–20 of 23 posts

Re: Generating Voronoi diagrams using Fortune's algorithm

#16
post #2

There is an implementation of that algorithm in JS by Raymond Hill (of uBlock Origin fame): https://github.com/gorhill/Javascript-Voronoi I toyed with it here to have it move: https://animations.adgent.com/voronoi.html

Your animation reminded me of the style used in A Scanner Darkly (2006) I wonder if it's possible to use video as an input to an algorithm that displays using Voronoi? Probably at that point it wouldn't be a Voronoi diagram, but it might look cool :)

The technique used in A Scanner Darkly is called rotoscoping, btw.

Re: Generating Voronoi diagrams using Fortune's algorithm

#17
post #3

I made an implementation in clojurescript that animates the algorithm as it goes a while back: https://voronoi.ajwerner.net/#/app-diagrams It’s a very beautiful algorithm. However, after that project I sort of came to dislike Fortune’s algorithm because it isn’t numerically stable with floating point numbers. If you have points that are colinear, or nearly colinear in fp, things can break. The delaunator is better in…

The animation is the best I've seen. I see the "old" implementation link in the references page; any chance of open sourcing the current animation one?

Re: Generating Voronoi diagrams using Fortune's algorithm

#18
post #3

I made an implementation in clojurescript that animates the algorithm as it goes a while back: https://voronoi.ajwerner.net/#/app-diagrams It’s a very beautiful algorithm. However, after that project I sort of came to dislike Fortune’s algorithm because it isn’t numerically stable with floating point numbers. If you have points that are colinear, or nearly colinear in fp, things can break. The delaunator is better in…

The animation is the best I've seen. I see the "old" implementation link in the references page; any chance of open sourcing the current animation one?

It’s all open source, sorry there was no link!

https://github.com/ajwerner/voronoi

Re: Generating Voronoi diagrams using Fortune's algorithm

#19
See also:

https://news.ycombinator.com/item?id=37998923 - Voronoi Diagram and Delaunay Triangulation in O(n log n) with Fortune's Algorithm (2020)

The previous article and discussion contain short summaries of other algorithms. My favorite is still the Jump Flooding Algorithm.

https://en.wikipedia.org/wiki/Jump_flooding_algorithm

Re: Generating Voronoi diagrams using Fortune's algorithm

#20

If you are not interested in the edges, only painting the sites with different colors, you can use a variation of flood fill starting with the seeds and only stacking the pixel if that color has distance lower than the one already painted that pixel.

Build a 3D scene of distinctly colored right circular cones with their apexes at the 2D planar vertices, and their axes perpendicular to the plane.

Render a 2D orthographic view from 'above' the apexes.

The z-buffer will preserve pixels from the nearest apex.

(Yes, I now there are shadery ways to do this, but the classic 3D cones demo is trivial to understand and implement).

Post reply on HN