[HN Gopher] Generating Voronoi Diagrams Using Fortune's Algorith...
       ___________________________________________________________________
        
       Generating Voronoi Diagrams Using Fortune's Algorithm (With Odin)
        
       Author : redpenguin101
       Score  : 150 points
       Date   : 2025-02-08 10:41 UTC (12 hours ago)
        
 (HTM) web link (redpenguin101.github.io)
 (TXT) w3m dump (redpenguin101.github.io)
        
       | bambax wrote:
       | 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
        
         | bloopernova wrote:
         | 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 :)
        
           | Sharlin wrote:
           | The technique used in A Scanner Darkly is called rotoscoping,
           | btw.
        
       | vvern wrote:
       | 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 this regard
       | iirc: https://github.com/mapbox/delaunator
        
         | fuzzythinker wrote:
         | 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?
        
           | vvern wrote:
           | It's all open source, sorry there was no link!
           | 
           | https://github.com/ajwerner/voronoi
        
       | Jarmsy wrote:
       | A few years back I made this 3d visualisation
       | https://x.com/KangarooPhysics/status/1253336959755251716
        
         | itishappy wrote:
         | Wow, this made everything click for me. Really nice animation!
        
       | talkingtab wrote:
       | D3js has a new implementation
       | 
       | https://github.com/d3/d3-delaunay
       | 
       | at the bottom of that page is a discussion of the sweep algorithm
       | used and a list of other (non-javascript) language implentations.
       | 
       | The original d3-voronoi is deprecated but can be found here:
       | 
       | https://github.com/d3/d3-voronoi
        
       | Kloopvram wrote:
       | Cool! Interesting that D3 moved away from Fortune's algorithm to
       | https://mapbox.github.io/delaunator/ because it
       | 
       | "is 5-10x faster than d3-voronoi to construct the Delaunay
       | triangulation or the Voronoi diagram, is more robust numerically,
       | has Canvas rendering built-in, allows traversal of the Delaunay
       | graph, and a variety of other improvements."
        
       | chefandy wrote:
       | Houdini's 3D Voronoi tools are fun.
        
       | figomore wrote:
       | 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.
        
       | bloomingkales wrote:
       | Ah, the original latent space.
        
       | dartos wrote:
       | What're the odds!
       | 
       | I just did this with Common Lisp!
        
       | omoikane wrote:
       | 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
        
       ___________________________________________________________________
       (page generated 2025-02-08 23:00 UTC)