GNs Proposal: Delaunay Triangulation for the Dual Mesh node

Trying to create a Voronoi wireframe pattern from a triangulated mesh I’ve realised the Dual Mesh node does not compute a Delaunay Triangulation as I thought it would. The circumcentre of the triangles should determine their corresponding Voronoi vertices, but they appear in the centre of the triangles instead:



Reading the documentation I’ve seen this is expected behaviour. Maybe the Dual Mesh node could have different modes with Delaunay among them?

1 Like

But… the the duality between delaunay and voronoi is a specific one because for every three points of a triangle they do define a specfic circle in space and so a midpoint/center of that circle.

The dual mesh node simply uses the midpoint off any n-gon as vertex and connect it to the next neighbour n-gon midpoint.

So what should a “delaunay-voronoi-dual-node” should do on a mesh with n-gons (n>3) ???

2 Likes

Well, it could simply calculate the circumcentre of the n-gons such that only when a mesh were made up of just triangles the result would actually be a Delaunay triangulation. The mode could be called differently, but that was the idea. I don’t know if that generalised duality/algorithm already has a name. Maybe the node could allow modes like “Vertices to Incentres”, “Vertices to Circumcentres”, etc.

You can calculate each triangle circumcircle manually and set it as new position after dual mesh to get correct voronoi.

Here is example:

3 Likes

Wow, you seem to have a procedural goldmine in there! I’ll definitely give it a shot (and take a look at some other of your creations!), although I still think it would be great if the Dual Mesh node implemented this functionality.

1 Like