Hi All,
want to create a circle mesh in Python to create uniformly spaced mesh (so no polar mesh), but currently mesh has some visual artifacts cause by how the vertices are distributed (where the triangles switch direction). Any pointers where i am missing the logic? I am bound to using python math or numpy, as libraries like trimesh for some reason won’t install on my system. I am not looking for a rhino/gh unique method as I want to share the code
def circle_points(radii, num_points_per_circle):
circles = []
for r, n in zip(radii, num_points_per_circle):
t = np.linspace(0, 2 * np.pi, n, endpoint=False)
x = r * np.cos(t)
y = r * np.sin(t)
circles.append(np.c_[x, y])
return np.vstack(circles)
Hello
Generate triangulated vertices and keep the ones that are inside a circle slightly little than the one you want, then generate point outsides, use Delaunay to have the mesh. Then apply some relaxation on the mesh (the difficult part).
Here is the Grasshopper demonstration.
you could use Triangular to have the inner points
I am not a Python guy so I don’t know were will be the constrain but if you can do the mesh half job is done. Relaxation will imply the need to have topology in order to calculate the “forces” on point.
A vector on each point will be calculated knowing the neighbors. You also have to know the naked points (they don’t move).
Here finishes what I can do. But there are lots Python masters.
And for the record, C# smoothing could be improved if not using Mesh connectivity in each loop but precalculating it before the looping.
From 756 ms to 59 ms or 2.3 s to 173 ms (X13 improvement)