In a nutshell:
I need an algorithm that can generate points on the surface of a sphere, and the euclidean distance between each point and its neighbors must be the same.
Here is a quick explanation about what I mean about that:
If the sphere was represented as a "geodesic polyhedron" ("geodesic sphere"), each side of all the triangles would have the same length. Note that it doesn't have to be a Geodesic grid or a geodesic polyhedron, it could be something else. I'm open to all suggestions.
The difficulty is that we must be able to specify the distance between the neighbouring points.
If it was a graph I would say that the edges should be the same length, and that the distance between the adjacent nodes / vertices should the same.
What I'm looking for:
- an existing libray / function or algorithm that already solves this problem (but I doubt that it would be the case because I did a lot of research)
- an implementation
Constraints of the algorithm:
Output:
- an array of 3D (x,y,z) coordinates.
Input parameters:
- 3D (x,y,z) coordinates of the sphere center
- radius of the sphere
- distance between neighbouring points (adjacent nodes)
What I've done:
- I did a lot of research about the subject
- I've read a lot of papers an articles
- I implemented some algorithms I found
I found a lot of good papers and resources about related problems, but nothing for this specific case. So after days of research, I ask people that have specialised knowledge of this area some help.
The closest solution I've found is the Deserno algorithm (see link below), but the problem is that its input parameters are the radius and a number of points to generate (we can't sepcify the coordinates of the sphere center an the distance between neighbouring points).
If it helps, here are some related questions and useful resources:
Evenly distributing n points on a sphere
Plotting points on the surface of a sphere in Python's matplotlib
https://en.wikipedia.org/wiki/Geodesic_grid
https://en.wikipedia.org/wiki/Geodesic_polyhedron
https://en.wikipedia.org/wiki/Spherical_polyhedron
Deserno algorithm: https://www.cmu.edu/biolphys/deserno/pdf/sphere_equi.pdf
Some representations to give an idea:
Geodesic grid / geodesic polyhedron:
Geodesic polyhedron zoom:
Here, each point is at 10 centimeters of distance from its neighbors.