G
G
Gilberg2015-05-15 11:26:58
Programming
Gilberg, 2015-05-15 11:26:58

How to generate circles on a sphere so that they optimally overlap each other?

It is required to optimally cover with circles of an arbitrary radius (the same for one generation) a sphere, an arbitrary radius. You need something similar to a honeycomb coating for a plane.
I tried several options, but all are not optimal, or I cannot take into account all the additional offsets.

Answer the question

In order to leave comments, you need to log in

4 answer(s)
S
SHVV, 2015-05-15
@SHVV

A deterministic algorithm for constructing an optimal partition, most likely, exists only when the centers of the circles lie at the vertices of regular polyhedra, that is, a tetrahedron, cube, octahedron, etc. But this condition is observed only for a certain ratio between the radii of the sphere and circles.
You can try to split regular polyhedra on a sphere and select the optimal polyhedron / level of splitting for each radius option. You can look at the code for building something like this even in the same Three.js .
You can also google "Periodic Centroidal Voronoi Tessellation", this method is often used for similar tasks. In particular, to build a grid for numerical simulation of physical processes on arbitrary surfaces or in a volume.

M
Mrrl, 2015-05-15
@Mrl

This is a known issue. So far, it has been solved up to 10 circles and for some even values. However, all this information is 25 years old, fresh results can not be found. Here is an article where the construction for 11 circles is analyzed (however, I have not read it, and I don’t know if there is a final solution for this case):
https://eudml.org/doc/141375
Or you have a task - "given a radius sphere and circle radius, find minimum number of circles"? Or can you give an approximate radius (or an approximate number of circles) and find some solution that is close to optimal for this case?
In general, now the task rests on the question "why?". If you need an exact solution for writing a doctoral dissertation, then decide. If there is any practical purpose - write what,
UPD. Basically, take an icosahedron and divide each face into small regular triangles. The vertices of these triangles will give the centers of the circles. The radius will have to be calculated based on the picture near the top of the icosahedron - there the triangles are noticeably distorted. Perhaps the radial distance between the points there will have to be slightly reduced.

B
bromzh, 2015-05-15
@bromzh

Since intersections are allowed, then you probably need to build something like this en.wikipedia.org/wiki/Geodesic_dome , well, that is. break the sphere into regular polygons (most likely 5-gons), albeit not of the same size. The main thing is that the distance from the center of the polygon to the vertex should not exceed the given radius for the "circles". Then, for each polygon, find the center and draw a ray from the center of the sphere passing through the center of this polygon and find the point of intersection of this ray with the surface of the sphere. This will be the center of the circle. It is important to understand that this is no longer Euclidean geometry, so some tricks will not work in such a space.
I really don't know if this would be the best placement. Perhaps there is no proof of its optimality yet.

D
Denis, 2015-05-15
@prototype_denis

Your case?
The initial size of the sphere can be taken as a unit, the radii can be normalized, and in the end, the sphere itself can be adjusted to the desired radius.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question