2

All of the methodologies for evenly distributing points on a sphere that I have found are largely asymmetric. I require an approximation that maximizes minimum distance between a given point and its neighbors under the constraint of reflectional symmetry across the X, Y, and Z axes.

In this case, an entire sphere of points could be generated from points distributed on one-fourth of a hemisphere (those whose cartesian coordinates are all positive, given an origin at the center of the sphere, for example).

What methods could be adapted to find a reasonable approximation given this constraint?

  • See this question and the comments under it. – Brian M. Scott Aug 17 '16 at 20:25
  • What do you mean by "are largely assymetric" ? Do you imply that it is method (as you explain it later on) that do not work first in the positive orthant ? – Jean Marie Aug 17 '16 at 20:44
  • My mistake for mentioning uniformity. What I am after is maximizing minimum distance between a given point and its neighbors, a la this comment. The aforementioned algorithms do, of course, work in the positive orthant, but I require the ability to reflect that orthant across each axis plane to recreate an entire sphere. – A. Meacham Aug 17 '16 at 20:50
  • Exclusion method should work. Generate three uniform random numbers $x$, $y$, and $z$, each between $0$ and $1$. Discard all three if $x^2+y^2+z^2 \le 1/4$, or if $x^2 + y^2 + z^2 \ge 1$; otherwise, divide each one by $\sqrt{x^2+y^2+z^2}$. You end up with $(x,y,z)$ uniformly distributed on the positive octant of the unit sphere. On average, you exclude about one triplet for each generated point. I've used this extensively with Xorshift* PRNG. – Nominal Animal Aug 17 '16 at 21:18
  • Sorry for any confusion. I'm not looking for a uniform distribution, but rather an algorithm akin to those in the comment I mentioned above. I've edited the question to this end. – A. Meacham Aug 17 '16 at 21:33

1 Answers1

1

Let your desired minimum distance between points be d. We are going to adapt Robert Bridson's Poisson-disc sampling algorithm, which guarantees a separation of at least d between points, for the positive octant of the sphere.

Since the distribution is symmetric about the three axes, any point that comes within $\frac d2$ distance of the xy, xz or yz planes will be too close to its symmetrical image and can be discarded. Call the remaining part of the octant T, and do the following:

  • Pick a point at random within T to seed the algorithm. Initialise an output list and an active list with this point.
  • (1) Until the active list is empty:
    • Pick a random point P in the active list.
    • (2) For k iterations, where k is a number that determines the tightness of the point distribution (I prefer 32):
      • Generate a random point in the annulus of inner radius d and outer radius $2d$ centred on P.
      • Check if this point is within T and at least a distance d from all other points in the output list (any efficient data structure, like an octree, can be used to test the latter condition). If both checks pass, add the generated point to the active and output lists, and return to (1); otherwise start a new iteration of (2).
    • If k iterations pass without a new point being accepted, remove P from the active list and return to (1).
  • When no more points remain in the active list, the algorithm has terminated. Return the points in the output list, reflected in the three axes to enforce the symmetry constraint.
Parcly Taxel
  • 103,344