比如我有20个点,平均的分布在球体上,我该如何计算

题目描述

在学习 three.js 的过程中,看到了使用three.js绘制一个球体的过程,其中关键的部分,给出一定数量的点,平均的分布在一个球体上,他的代码如下,但不明白细节

            // sphere

            var vector = new THREE.Vector3();
            var spherical = new THREE.Spherical();

            for ( var i = 0, l = objects.length; i < l; i ++ ) {

                var phi = Math.acos( -1 + ( 2 * i ) / l );
                var theta = Math.sqrt( l * Math.PI ) * phi;

                var object = new THREE.Object3D();

                spherical.set( 800, phi, theta );

                object.position.setFromSpherical( spherical );

                vector.copy( object.position ).multiplyScalar( 2 );

                object.lookAt( vector );

                targets.sphere.push( object );

            }
            
    

这里在求 phitheta, 不明白它的计算方式, 它是怎么计算出来的?

原地址

阅读 2.4k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题