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


~10d ago

fleg: This Tuesday, Cologne: exhibition opening of "interwoven", textile disinformation patterns created with vvvv. https://fleg.de/news/exhibition-interwoven

~23d ago

manuelgonzalvez: Assimp nodes all broken afted Win Update w/exception "COM object that has been separated from its underlying RCW(...)"

~23d ago

manuelgonzalvez: @levi thanks would love to! anyway managed to get something similar working based on forum search and anthokio's patches.

~24d ago

levi: @ravasquez thanks. 31.2 x86 verrion worked. @manuelgonzalvez i have a dx11 projectTexture if u a want.

~25d ago

manuelgonzalvez: Anyone has a dx11 port of "projectedTexture" dx9 fx for projection mapping?

~25d ago

manuelgonzalvez: Anyone has a dx11 port of "projectedTexture" dx9 fx for projection mapping?

~26d ago

ravazquez: @levi not sure bout the ImagePack, but I believe VL.OpenCV should give you the same tools and should work with beta just fine

~26d ago

levi: anyone knows of a VVVVpacks.image that works for elliot's projector calibration patches?x64,dx11. always crashes v4 on solve.

~1mth ago

Lorenz: VJing with GIFS: https://lorenzpotthast.de/gifjockey/ A fun little side project, that I first prototyped in v4 and now turned web-based ;)

~2mth ago

schlonzo: finally fixed in 4.8 nice1