Regular Hexagons on Zero Gaussian Curvature

Hi all,

I am trying to obtain a regular hexagon pattern on a zero gaussian surface (in my case a quarter of cylinder). I start from a hex grid and then I remap the points on the surface.

If the Surface Radius is 82.76, the Width is 43.3 and the starting hexagon Cell Size is 10, I need 5 Hexagons in X direction and 13 in Y direction to perfectly cover the surface. Since the surface is developable, I can cover it with hexagons without distorsions. I expected that the area of each hexagon on the surface is equal to the area of the starting hex grid, but the values are a little bit lower, as shown in the file.

Regular Hex on Zero Gaussian (26.5 KB)

Can someone explaining me the reason? What am I doing wrong?

Thank you very much

Your source and target surface dimensions don’t match?


1 Like

A couple possible sources of errors

  1. Is the parameterized surface an isometric immersion? Your code is assuming more than just that the surface is developable. You are assuming that the given parameterization produces a metric that is the identity matrix. For a Nurbs cylinder this is not the case since a nurbs circle does not have a constant speed parameterization. Try using a cylinder made from an ON_Arc curve.

  2. Too many linear approximations. It seams your grid on the cylinder is made up of line segments of course many of these segments should be elliptical arcs. Doesn’t Patch make an planar surface. Anyway it certainly is not making a trimmed surface from the cylinder.

I don’t know if these approximations account for the discrepancies you see.

This is a semi-tidy mess of ideas, starting with a lofted surface in the white group that matches the dimensions of the bounding box of the flat hexagonal grid.

Note the Polygon component at the bottom, shown in default magenta, and see how they are overlapping at the top and bottom of the lofted surface. I can’t explain why but think it’s a clue about different areas in all the mapped hexagons. (33.6 KB)

1 Like

Hei Joseph,

Thank you for the observation.
This is how I considered the dimensions of the repiting hexagon.


Regarding the l2 direction, I fogot to consider at the end of the line the small lenght not involved in l2.
Regarding the l1 direction, I had to consider an extra half cell size, since the cells don’t start at the same level.

Now I obtain better results and I am happy with them


Without seeing your code, I don’t really understand because I tried many things. Glad you’re happy.

I modified the reference surface in order to obtain more similar boundaries, I made a mistake in the calculations.

I will have a look at your code tomorrow, maybe your approach is much better.

Thank you