» Voronoi with Winged Edge information
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

Voronoi with Winged Edge information

plugin delaunay voronoi
Credits: darrellp


This contribution consists of several nodes which expose the information in a winged edge representation of a voronoi diagram. The winged edge structure comes from a C# Voronoi DLL I wrote long ago which uses Fortune's algorithm. The details are somewhat unavoidably complex but I've done my best to explain most of them in the supplied sample patch. Allows for Lloyd relaxation and there's some other stuff which I will probably expose sometime such as an intersection routine for convex polygons. The information in the Winged Edge structure give access to pretty much anything concerning the diagram. The Delaunay triangulation is trivial to derive from it, individual cells and the points which make up their polygon are easily produced, adjacency relations for all cells, vertices and edges are all available. Hopefully this is at least understandable to the point that somebody out there can make use of it.

2/18/16: Put in help files, went to source versions for plugins, Added a pin to CellInfo for Index which gives the position of the cell's voronoi point in the original spread in to VoronoiComplex. This enables you to recognize, for instance, which original points are responsible for a given edge/cell/vertex. Changed category from 2d.voronoi to 2d.Voronoi. Maybe a few other small things which slip my mind.

2/19/16: Hopefully the last name changes:

  • Changed Location pin of VertexIinfo to Vector2D type and renamed to Position.
  • Pins for Points and Center on CellVertices changed to Vector2D type
  • Input Clipping Polygon to Lloyd Relaxation changed to Vector2D type
  • Helpfiles adjusted to accommodate these changes

2/21/16: Primary addition was indices on vertices and edges. This allows them to be compared for equality easily and also provides a potential index into spreads where information about them may be kept. The only thing guaranteed about the vertices is that each edge/vertex has one (including the infinite ones) and they run from 0 to (number of vertices/edges). See helpfile for VertexInfo for an idea on how to use them.

  • Added indices to vertices and edges.
  • Added an Index pin to VertexInfo and EdgeInfo to retrieve index

2/21/16: Found out that CellVertices was putting out vertices in the wrong order for some GPUs. Other GPUs don't care about order so I reversed the point order. Also, I was using precisely the wrong default for Inset - was 1.0 but should be 0.0 so changed that.


22.02.16 [03:49 UTC] by darrellp | 670 downloads
Reversed point order in CellVertices and changed default for Inset
Show 3 older revisions

Older Revisions

21.02.16 [10:51 UTC] by darrellp | 147 downloads
Added indices to edges and vertices
20.02.16 [05:20 UTC] by darrellp | 156 downloads
Changed point spreads from double to Vector2D
18.02.16 [16:40 UTC] by darrellp | 170 downloads
Capitalized Voronoi in 2d.Voronoi, added an out pin to CellInfo to indicate the index of the cell's center in the original sprea

lasal 16/02/2016 - 11:12

Finally someone did it.

sunep 18/02/2016 - 17:58

@darrellp I would recommend that you upload new versions as new versions, preferably with version numbers so it is possible to see which version it is that you have downloaded also with a comment so it is possible to see what is changed. like here for example: https://vvvv.org/contribution/project-templates

darrellp 18/02/2016 - 18:53

Thanks Sune. I've been putting change comments in the log section which I thought would be good enough, but I can't see any way of getting to the log comments so I guess that's no help. I'm not sure how to do versions. Next one I check in I'll try to do that correctly. I'll go ahead and modify the comments above to indicate changes from the last version. Good news - I think the node/pin names and contents are pretty stable at this point. A lot of roiling on these at the start after getting great comments from joreg.

sunep 18/02/2016 - 19:12

when editing, you just upload a new file and in the description of the new file, you write what is new about this new file.

I allowed myself to change the description to match what you wrote in the about part

EDIT: and then of course not delete the old files

EDIT2: Apparently I can't change your description, you need to do that

isdzaurov 19/02/2016 - 10:36


colorsound 21/02/2016 - 13:25

great, very handy, thank you ¡¡

demondias 22/02/2016 - 12:04

Essentially, I want to use an image to create a voronoi cell structure within the image outline that will be suitable for using as a cutting diagram for a laser cutter to make stencils with. I am pretty new to VVVV so any help or assistance would be most appreciated.


tonfilm 26/02/2016 - 19:50

@demondias please start a forum thread with your question...

anonymous user login


~1d ago

skyliner: wanna do drone shows or applications? then check this super cool project of our man e1n

~6d ago

NoseBleedIndustries: Thanks Joreg! The few minutes I was able to see, very good workshops!

~6d ago

joreg: @NoseBleedIndustries please give us some days, we'll have an announcement soon...

~6d ago

NoseBleedIndustries: I could not assist the Node20 (workshops ) Any Idea when we will have access to the links of the recordings?

~7d ago

bjoern: unity has c# bindings for usd, under apache license: https://github.com/Unity-Technologies/usd-unity-sdk

~16d ago

ravazquez: @synth yes they are being recorded and will be available for future consumption

~16d ago

synth: Another stupid question: Are all #NODE20 sessions recorded and accessible for later viewing in case someone missed something?

~17d ago

joreg: Get a fresh drink and some snacks: Live in 45 minutes: #NODE20 opening: https://youtu.be/SlKKyEUihhY