Is there a way to generate a uniformly distributed point on a sphere from a fixed amount of random real numbers? The 2019 Stack Overflow Developer Survey Results Are InHow to find a random axis or unit vector in 3D?Picking random points in the volume of sphere with uniform probabilityIs a sphere a closed set?Random Point Sampling From a Set with Certain GeometryHow to Create a Plane Inside A CubeAlgorithm to generate random points in n-Sphere?Sampling on Axis-Aligned Spherical QuadRandom 3D points uniformly distributed on an ellipse shaped window of a sphereCompensating for distortion when projecting a 2D texture onto a sphereFind the relative radial position of a point within an ellipsoid

Keeping a retro style to sci-fi spaceships?

What is the most efficient way to store a numeric range?

Does HR tell a hiring manager about salary negotiations?

If my opponent casts Ultimate Price on my Phantasmal Bear, can I save it by casting Snap or Curfew?

"as much details as you can remember"

Can withdrawing asylum be illegal?

Cooking pasta in a water boiler

What is this business jet?

What do these terms in Caesar's Gallic Wars mean?

How to translate "being like"?

For what reasons would an animal species NOT cross a *horizontal* land bridge?

Ubuntu Server install with full GUI

Why don't hard Brexiteers insist on a hard border to prevent illegal immigration after Brexit?

Can you cast a spell on someone in the Ethereal Plane, if you are on the Material Plane and have the True Seeing spell active?

What to do when moving next to a bird sanctuary with a loosely-domesticated cat?

Button changing its text & action. Good or terrible?

What is this sharp, curved notch on my knife for?

The phrase "to the numbers born"?

How come people say “Would of”?

Why doesn't UInt have a toDouble()?

What could be the right powersource for 15 seconds lifespan disposable giant chainsaw?

Correct punctuation for showing a character's confusion

Kerning for subscripts of sigma?

How to type a long/em dash `—`



Is there a way to generate a uniformly distributed point on a sphere from a fixed amount of random real numbers?



The 2019 Stack Overflow Developer Survey Results Are InHow to find a random axis or unit vector in 3D?Picking random points in the volume of sphere with uniform probabilityIs a sphere a closed set?Random Point Sampling From a Set with Certain GeometryHow to Create a Plane Inside A CubeAlgorithm to generate random points in n-Sphere?Sampling on Axis-Aligned Spherical QuadRandom 3D points uniformly distributed on an ellipse shaped window of a sphereCompensating for distortion when projecting a 2D texture onto a sphereFind the relative radial position of a point within an ellipsoid










4












$begingroup$


The obvious solution of Lattitude & Longitude doesn't work because it generates points more densely near the poles, and the other thing I came up with (Pick a random point in the unit cube, if it's in the sphere map it to the surface, and restart if it's outside) doesn't always find a point within a fixed number of tries.










share|cite|improve this question











$endgroup$











  • $begingroup$
    So what you want is a uniform distribution. It would be helpful to state this explicitly.
    $endgroup$
    – robjohn
    3 hours ago






  • 1




    $begingroup$
    Distribute longitude uniformly and the sine of the latitude uniformly. Then the distribution of points on the sphere will be uniform.
    $endgroup$
    – robjohn
    3 hours ago










  • $begingroup$
    @robjohn thank you, you're right that I forgot to specify that.
    $endgroup$
    – The Zach Man
    59 mins ago















4












$begingroup$


The obvious solution of Lattitude & Longitude doesn't work because it generates points more densely near the poles, and the other thing I came up with (Pick a random point in the unit cube, if it's in the sphere map it to the surface, and restart if it's outside) doesn't always find a point within a fixed number of tries.










share|cite|improve this question











$endgroup$











  • $begingroup$
    So what you want is a uniform distribution. It would be helpful to state this explicitly.
    $endgroup$
    – robjohn
    3 hours ago






  • 1




    $begingroup$
    Distribute longitude uniformly and the sine of the latitude uniformly. Then the distribution of points on the sphere will be uniform.
    $endgroup$
    – robjohn
    3 hours ago










  • $begingroup$
    @robjohn thank you, you're right that I forgot to specify that.
    $endgroup$
    – The Zach Man
    59 mins ago













4












4








4


1



$begingroup$


The obvious solution of Lattitude & Longitude doesn't work because it generates points more densely near the poles, and the other thing I came up with (Pick a random point in the unit cube, if it's in the sphere map it to the surface, and restart if it's outside) doesn't always find a point within a fixed number of tries.










share|cite|improve this question











$endgroup$




The obvious solution of Lattitude & Longitude doesn't work because it generates points more densely near the poles, and the other thing I came up with (Pick a random point in the unit cube, if it's in the sphere map it to the surface, and restart if it's outside) doesn't always find a point within a fixed number of tries.







geometry






share|cite|improve this question















share|cite|improve this question













share|cite|improve this question




share|cite|improve this question








edited 40 mins ago









robjohn

271k27313642




271k27313642










asked 3 hours ago









The Zach ManThe Zach Man

1107




1107











  • $begingroup$
    So what you want is a uniform distribution. It would be helpful to state this explicitly.
    $endgroup$
    – robjohn
    3 hours ago






  • 1




    $begingroup$
    Distribute longitude uniformly and the sine of the latitude uniformly. Then the distribution of points on the sphere will be uniform.
    $endgroup$
    – robjohn
    3 hours ago










  • $begingroup$
    @robjohn thank you, you're right that I forgot to specify that.
    $endgroup$
    – The Zach Man
    59 mins ago
















  • $begingroup$
    So what you want is a uniform distribution. It would be helpful to state this explicitly.
    $endgroup$
    – robjohn
    3 hours ago






  • 1




    $begingroup$
    Distribute longitude uniformly and the sine of the latitude uniformly. Then the distribution of points on the sphere will be uniform.
    $endgroup$
    – robjohn
    3 hours ago










  • $begingroup$
    @robjohn thank you, you're right that I forgot to specify that.
    $endgroup$
    – The Zach Man
    59 mins ago















$begingroup$
So what you want is a uniform distribution. It would be helpful to state this explicitly.
$endgroup$
– robjohn
3 hours ago




$begingroup$
So what you want is a uniform distribution. It would be helpful to state this explicitly.
$endgroup$
– robjohn
3 hours ago




1




1




$begingroup$
Distribute longitude uniformly and the sine of the latitude uniformly. Then the distribution of points on the sphere will be uniform.
$endgroup$
– robjohn
3 hours ago




$begingroup$
Distribute longitude uniformly and the sine of the latitude uniformly. Then the distribution of points on the sphere will be uniform.
$endgroup$
– robjohn
3 hours ago












$begingroup$
@robjohn thank you, you're right that I forgot to specify that.
$endgroup$
– The Zach Man
59 mins ago




$begingroup$
@robjohn thank you, you're right that I forgot to specify that.
$endgroup$
– The Zach Man
59 mins ago










2 Answers
2






active

oldest

votes


















5












$begingroup$

The Lambert cylindrical equal area projection maps the sphere to a cylinder, area to equal area. It is easy to generate a uniform distribution on a cylinder. Simply map it back to the sphere.



For $(u_1,u_2)$ uniform on $[0,1]^2$, either



$mathrmlat=arcsin(2u_1-1),mathrmlon=2pi u_2$



or



$z=2u_1-1,x=sqrt1-z^2cos(2pi u_2),y=sqrt1-z^2sin(2pi u_2)$






share|cite|improve this answer









$endgroup$




















    3












    $begingroup$

    Your method, even though it doesn't finish in a fixed number of times, is a reasonable way to do it. Each trial succeeds with probability $fracpi6$, which is better than $frac12$: the average number of trials is less than $2$.



    Another standard method is to use the normal distribution. Generate $x, y, z$ independently from a standard normal distribution, then take the point $(x,y,z)$ and divide it by $sqrtx^2+y^2+z^2$ as you did for points inside the cube. The multivariate normal distribution is rotationally symmetric, so this will get you evenly distributed points on the sphere.



    (The Box–Muller transform is one way to generate normally distributed random numbers, and some versions of it do not use rejection sampling, so they can be done with a "fixed amount" of randomness.)






    share|cite|improve this answer









    $endgroup$













      Your Answer





      StackExchange.ifUsing("editor", function ()
      return StackExchange.using("mathjaxEditing", function ()
      StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
      StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
      );
      );
      , "mathjax-editing");

      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "69"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader:
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      ,
      noCode: true, onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );













      draft saved

      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3184449%2fis-there-a-way-to-generate-a-uniformly-distributed-point-on-a-sphere-from-a-fixe%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      5












      $begingroup$

      The Lambert cylindrical equal area projection maps the sphere to a cylinder, area to equal area. It is easy to generate a uniform distribution on a cylinder. Simply map it back to the sphere.



      For $(u_1,u_2)$ uniform on $[0,1]^2$, either



      $mathrmlat=arcsin(2u_1-1),mathrmlon=2pi u_2$



      or



      $z=2u_1-1,x=sqrt1-z^2cos(2pi u_2),y=sqrt1-z^2sin(2pi u_2)$






      share|cite|improve this answer









      $endgroup$

















        5












        $begingroup$

        The Lambert cylindrical equal area projection maps the sphere to a cylinder, area to equal area. It is easy to generate a uniform distribution on a cylinder. Simply map it back to the sphere.



        For $(u_1,u_2)$ uniform on $[0,1]^2$, either



        $mathrmlat=arcsin(2u_1-1),mathrmlon=2pi u_2$



        or



        $z=2u_1-1,x=sqrt1-z^2cos(2pi u_2),y=sqrt1-z^2sin(2pi u_2)$






        share|cite|improve this answer









        $endgroup$















          5












          5








          5





          $begingroup$

          The Lambert cylindrical equal area projection maps the sphere to a cylinder, area to equal area. It is easy to generate a uniform distribution on a cylinder. Simply map it back to the sphere.



          For $(u_1,u_2)$ uniform on $[0,1]^2$, either



          $mathrmlat=arcsin(2u_1-1),mathrmlon=2pi u_2$



          or



          $z=2u_1-1,x=sqrt1-z^2cos(2pi u_2),y=sqrt1-z^2sin(2pi u_2)$






          share|cite|improve this answer









          $endgroup$



          The Lambert cylindrical equal area projection maps the sphere to a cylinder, area to equal area. It is easy to generate a uniform distribution on a cylinder. Simply map it back to the sphere.



          For $(u_1,u_2)$ uniform on $[0,1]^2$, either



          $mathrmlat=arcsin(2u_1-1),mathrmlon=2pi u_2$



          or



          $z=2u_1-1,x=sqrt1-z^2cos(2pi u_2),y=sqrt1-z^2sin(2pi u_2)$







          share|cite|improve this answer












          share|cite|improve this answer



          share|cite|improve this answer










          answered 1 hour ago









          robjohnrobjohn

          271k27313642




          271k27313642





















              3












              $begingroup$

              Your method, even though it doesn't finish in a fixed number of times, is a reasonable way to do it. Each trial succeeds with probability $fracpi6$, which is better than $frac12$: the average number of trials is less than $2$.



              Another standard method is to use the normal distribution. Generate $x, y, z$ independently from a standard normal distribution, then take the point $(x,y,z)$ and divide it by $sqrtx^2+y^2+z^2$ as you did for points inside the cube. The multivariate normal distribution is rotationally symmetric, so this will get you evenly distributed points on the sphere.



              (The Box–Muller transform is one way to generate normally distributed random numbers, and some versions of it do not use rejection sampling, so they can be done with a "fixed amount" of randomness.)






              share|cite|improve this answer









              $endgroup$

















                3












                $begingroup$

                Your method, even though it doesn't finish in a fixed number of times, is a reasonable way to do it. Each trial succeeds with probability $fracpi6$, which is better than $frac12$: the average number of trials is less than $2$.



                Another standard method is to use the normal distribution. Generate $x, y, z$ independently from a standard normal distribution, then take the point $(x,y,z)$ and divide it by $sqrtx^2+y^2+z^2$ as you did for points inside the cube. The multivariate normal distribution is rotationally symmetric, so this will get you evenly distributed points on the sphere.



                (The Box–Muller transform is one way to generate normally distributed random numbers, and some versions of it do not use rejection sampling, so they can be done with a "fixed amount" of randomness.)






                share|cite|improve this answer









                $endgroup$















                  3












                  3








                  3





                  $begingroup$

                  Your method, even though it doesn't finish in a fixed number of times, is a reasonable way to do it. Each trial succeeds with probability $fracpi6$, which is better than $frac12$: the average number of trials is less than $2$.



                  Another standard method is to use the normal distribution. Generate $x, y, z$ independently from a standard normal distribution, then take the point $(x,y,z)$ and divide it by $sqrtx^2+y^2+z^2$ as you did for points inside the cube. The multivariate normal distribution is rotationally symmetric, so this will get you evenly distributed points on the sphere.



                  (The Box–Muller transform is one way to generate normally distributed random numbers, and some versions of it do not use rejection sampling, so they can be done with a "fixed amount" of randomness.)






                  share|cite|improve this answer









                  $endgroup$



                  Your method, even though it doesn't finish in a fixed number of times, is a reasonable way to do it. Each trial succeeds with probability $fracpi6$, which is better than $frac12$: the average number of trials is less than $2$.



                  Another standard method is to use the normal distribution. Generate $x, y, z$ independently from a standard normal distribution, then take the point $(x,y,z)$ and divide it by $sqrtx^2+y^2+z^2$ as you did for points inside the cube. The multivariate normal distribution is rotationally symmetric, so this will get you evenly distributed points on the sphere.



                  (The Box–Muller transform is one way to generate normally distributed random numbers, and some versions of it do not use rejection sampling, so they can be done with a "fixed amount" of randomness.)







                  share|cite|improve this answer












                  share|cite|improve this answer



                  share|cite|improve this answer










                  answered 3 hours ago









                  Misha LavrovMisha Lavrov

                  49k757107




                  49k757107



























                      draft saved

                      draft discarded
















































                      Thanks for contributing an answer to Mathematics Stack Exchange!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid


                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.

                      Use MathJax to format equations. MathJax reference.


                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3184449%2fis-there-a-way-to-generate-a-uniformly-distributed-point-on-a-sphere-from-a-fixe%23new-answer', 'question_page');

                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      Isurus Índice Especies | Notas | Véxase tamén | Menú de navegación"A compendium of fossil marine animal genera (Chondrichthyes entry)"o orixinal"A review of the Tertiary fossil Cetacea (Mammalia) localities in wales port taf Museum Victoria"o orixinalThe Vertebrate Fauna of the Selma Formation of Alabama. Part VII. Part VIII. The Mosasaurs The Fishes50419737IDsh85068767Isurus2548834613242066569678159923NHMSYS00210535017845105743

                      How Do I Get Flowey Back Without Doing Genocide Or Any Other Path? The 2019 Stack Overflow Developer Survey Results Are In Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)At what point are the effects of the Genocide route irreversible?How To Get Flowey Back?How do you get back to Asgore's house after going past it in Undertale?How am I supposed to get past Dogamy and Dogaressa without killing them?How do I activate the Genocide Route in Undertale RuinsCan I reset my game in Genocide In Undertale?Can you spare Undyne the Undying during a genocide runSnowdrake is affecting my genocide runHow do I give my game a new start in Undertale?Why is Undyne giving me a letter after finishing the Neutral Route and reloading my save?

                      Is 1 ppb equal to 1 μg/kg? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)How to determine the concentration after a dilution with Beer's law?What would be SMILES notation for a compound with delocalized bonding?Amount of substance of a molecule in a solute the same as amount of substance of constituent elements?Interpreting notation format 1.64E-02 from particulate emission dataWhat was the lithium concentration in 1940's 7-Up?Why are osmoles not considered SI units?Why is Ka constant when volume is increased?Should residual sodium be considered in measuring sodium content of sweat?Concentration of mercury in bodyConversion from a PPB value to µg/m3 of Isobutylene