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

发布于 2022-09-07 20:26:21 字数 982 浏览 29 评论 0

题目描述

在学习 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, 不明白它的计算方式, 它是怎么计算出来的?

原地址

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文