How to discretize a sphere?

1.5k Views Asked by At

I would like to discretize a sphere into icosahedra whose vertices are equidistant, i.e., I want to plot $n$ equidistant points on the surface of a sphere.

I am familiar with R, Python, and Matlab. Are there packages available to do this? Or are there scripts that I can run that have already been posted? Should I proceed with this problem doing spherical tessellation?

1

There are 1 best solutions below

4
On BEST ANSWER

This may not be exactly what you want but Mathematica can do something close.

Needs["PolyhedronOperations`"]
G = Geodesate[PolyhedronData["Icosahedron", "Faces"], 5] // N // Chop;

Here G[[1]] is a list of $265$ coordinates of the points of an order $5$ tessellation of an icosahedron, while G[[2,1]] is a list of $500$ triangle vertex indices from the list of $265$ points. For an order $n$ tessellation there are $\,15+10n^2\,$ vertices and $\,20n^2\,$ triangles. Display the tessellated polyhedron using the command Graphics3D[G].

As a check the first $4$ coordinates in G[[1]] is the following list:

{{0, 0, -0.951057}, {0, 0, 0.951057}, {-0.850651, 0, -0.425325}, {0.850651, 0, 0.425325}}

Also the first $6$ triangle tuples in G[[2,1]] is the following list:

{{14, 20, 15}, {15, 21, 16}, {16, 22, 17}, {17, 23, 18}, {18, 24, 19}, {20, 25, 21}}