This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

# Voronoi with Winged Edge information

plugin
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.

ValueVoronoiComplex.zip
Reversed point order in CellVertices and changed default for Inset

Older Revisions

ValueVoronoiComplex.zip
Added indices to edges and vertices
ValueVoronoiComplex.zip
Changed point spreads from double to Vector2D
VoronoiDiagram.zip
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

nice

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.

D

tonfilm 26/02/2016 - 19:50

# Shoutbox

~23h ago

joreg: 2 day vvvv/fuse workshop in Vienna as part of NOISE festival on Sept. 13 and 14: https://www.noise.ist/vienna

~11d ago

joreg: New beginner video tutorial: World Cities https://youtu.be/ymzrK7tZLBI

~12d ago

catweasel: https://colour-burst.com/2023/01/26/macroscopic/ yeah, ' is there anyone who cares about slides anymore...' Well me for a start! :D

~21d ago

ventolinmono: The ELMO TRV-35 slides into your video feed > https://youtu.be/pcIM9mh1c9k?si=iB4FOfI2D6y0iETy

~1mth ago

joreg: The summer season of vvvv workshops is now complete, but you can still get access to all the recordings: https://thenodeinstitute.org/ss24-vvvv-intermediates/

~1mth ago

~2mth ago

joreg: Workshop on 01 08: Augmented Reality using OpenCV, signup here: https://thenodeinstitute.org/courses/ss24-vvvv-augmented-reality-using-opencv-in-vvvv/

~2mth ago

joreg: Workshop on 18 07: Fluid simulations in FUSE, signup here: https://thenodeinstitute.org/courses/ss24-vvvv-fluid-simulations-in-fuse/

~2mth ago

joreg: Workshop on 17 07: Working with particles in FUSE, signup here: https://thenodeinstitute.org/courses/ss24-vvvv-working-with-particles-in-fuse/

~2mth ago

joreg: Here's what happened in June in our little univvvverse: https://visualprogramming.net/blog/2024/vvvvhat-happened-in-june-2024/