DEV Community

HandsomeTan
HandsomeTan

Posted on

Create a sphere with evenly distributed points with three.js

In fact, I have yet to find a way that all points are distributed uniformly. All the methods I have found can only approach a uniform distribution, so I recommend a simpler method in my opinion:

const spherical = new THREE.Spherical();
spherical.radius = 5;
for (let i = 0; i < points; i++) {

  let phi = Math.acos(1.0 - (2.0 * i + 0.5) / points);
  let theta = Math.PI * (1 + Math.sqrt(5)) * i;

  spherical.phi = phi; 
  spherical.theta = theta; 
  const x = spherical.radius * Math.sin(spherical.phi) * 
  Math.cos(spherical.theta);
  const y = spherical.radius * Math.sin(spherical.phi) * 
            Math.sin(spherical.theta);
  const z = spherical.radius * Math.cos(spherical.phi);
......
}
Enter fullscreen mode Exit fullscreen mode

I also don't understand this theoretical principle, because my math is bad, if you are intersting in this principle you can search for relevant information on Stack Overflow.



Top comments (0)

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay