3 ms·
If you want uniformly random on the spherical surface then uniformly at random in polar coordinates will not cut it. To appreciate why, consider strips along t
by srean 1y ago
If you want uniformly random on the spherical surface then uniformly at random in polar coordinates will not cut it.
To appreciate why, consider strips along two constant latitudes. One along the Equator and the other very close to the pole. The uniformly random polar coordinates method will assign roughly the same number points to both. However the equatorial strip is spread over a large area but the polar strip over a tiny area. So the points will not be uniformly distributed over the surface.
What one needs to keep track of is the ratio between the infinitesimal volume in polar coordinates dphi * dtheta to the infinitesimal of the surface area. In other words the amount of dilation or contraction. Then one has apply the reciprocal to even it out.
This tracking is done by the determinant of the Jacobian.
- egorfine 1y agoThis is now crystal clear and obvious to me, thank you very much for the great explanation!
- srean 1y agoHappy to help.
- dan-robertson 1y agoLooking at Jacobians is the general method but one can rely on an interesting property: not only is the surface area of a sphere equal to the surface area of a cylinder tightly enclosing it (not counting end caps), but if you take a slice of this cylinder-with-sphere-inside, the surface area of the part of the sphere will be equal to the surface area of the shorter cylinder that results from the cutting. This gives an algorithm for sampling from a sphere: choose randomly from a cylinder and then project onto a sphere. In polar coordinates: sample theta uniformly in (0,2pi) sample y uniformly in (-1,1) project phi = arcsin(y) in (-pi,pi) polar coordinates (theta, phi) define describe random point on sphere Potentially this is slower than the method in the OP depending on the relative speeds of sqrt and arcsin.
- spyrja 1y agoThat's a neat approach! So basically something like this: https://editor.p5js.org/spyrja/sketches/eYt7H36Ka https://editor.p5js.org/spyrja/sketches/eYt7H36Ka
- scotty79 1y agoThis seems more like a random point on a spiral on the sphere. There was a thing on hn about spirals on a sphere few days ago.
- spyrja 1y agoAh, good catch. I forgot to scale the point properly! How does the updated sketch look? EDIT: Plotting it out as a point cloud seems to confirm your suspicion. Without scaling: https://editor.p5js.org/spyrja/sketches/7IK_RssLI https://editor.p5js.org/spyrja/sketches/7IK_RssLI Scaling fixed: https://editor.p5js.org/spyrja/sketches/kMxQMG0dj https://editor.p5js.org/spyrja/sketches/kMxQMG0dj
- srean 1y agoAh neat ! It never occurred to me -- the connection with Archimdedes' result. He certainly considered it to be his best.
- krackers 1y agoI think this 2D version shows the issue clearly https://mathworld.wolfram.com/DiskPointPicking.html https://mathworld.wolfram.com/DiskPointPicking.html