Delaunay mesh not connecting at points

meshfrompoints

(Rasmus Bendtsen) #1

Hi,

Have any of you experienced that the connection points from a Delaunay mesh does not correspond to the points it is created from?

Like so:

Is there a way to fix it? Currently I am dividing 19 different curves into points with approx. 1 unit spacing (approx. 4500 points).

I have tried the Delaunay Edge component as well, and it seems like the output edges are connected at the correct points.

Thanks,
Rasmus


#2

It looks weird but who knows the reason before seeing your actual data?
For now, I would say “Flatten” all point input of Delaunay Mesh


(Rasmus Bendtsen) #3

I have flattened my input, but that did not work either.


(David Rutten) #4

Delaunay is a strictly 2D algorithm, so it will project all the points onto a single plane, then remove all duplicates. If your points are oriented vertically yet you’re using the world XY plane for the projection, some points may be ignored.

But you didn’t post a file so I don’t know if that’s what’s really wrong.


(Rasmus Bendtsen) #5

Hi David,

My points is not located on a single plane. However, I found that by moving my points closer to 0,0,0 (I am working in global coordinates), I was able to create the mesh that I desired. I had to move the mesh back to the global coordinates, otherwise I encountered the same problem with the mesh when using Grasshopper.


(David Rutten) #6

Meshes can be single precision, so they’ll deteriorate faster than other types of geometry as you move away from the origin. In general it’s not a good idea to put stuff out in the middle of nowhere, the maths just becomes less and less accurate the bigger the numbers get.

We use standard single and double floating precision numbers in Rhino (mostly doubles, but meshes sometimes use single precision to (a) reduce memory load and (b) make it easier to draw them as graphics cards almost exclusive operate in single precision). With these number types you can have numbers as small as 10^{-300} and as big as 10^{+300}. However the amount of distinct values between zero and one is about the same as the amount of distinct values between one and infinity. That means that the gaps between adjacent values gets bigger and bigger the further away from zero you are. At some point, a+1=a because the gap between a and the next possible number is larger than two.