» 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

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 | 899 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 | 250 downloads
Added indices to edges and vertices
20.02.16 [05:20 UTC] by darrellp | 253 downloads
Changed point spreads from double to Vector2D
18.02.16 [16:40 UTC] by darrellp | 280 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


~5d ago

joreg: @micha_nismus instead of discord, we're using matrix, see: chat

~5d ago

micha_nismus: searching for a public discord server for vvvv

~12d ago

joreg: Join us for the 20th #vvvv meetup on January 19th: https://thenodeinstitute.org/event/20-worldwide-vvvv-meetup/

~12d ago

joreg: @schlonzo re "SDSL support" did you see the Shader wizard? or do you mean something different?

~12d ago

joreg: @LCA not aware, but the HIKVision sdk comes with a c# demo. need help for a commercial project? get in touch via devvvvs@vvvv.org

~14d ago

LCA: Has anyone ever made a HIKVision GigE work with vvvv?

~18d ago

schlonzo: What's the shortcut Anton used? =)

~18d ago

schlonzo: The extension manager for C# projects is an awesome addition! Could you pretty please add SDSL support?

~2mth ago

joreg: For latest #vvvv news, please follow us on #Mastodon https://mastodon.xyz/@vvvv

~3mth ago

manuel: very cool to generate matcap / cubemap for reflections https://cables.gl/p/pDCOCw