2017-03-03 85 views
-1

我找到了一个公式,执行以下操作:有人可以解释公式

https://threejs.org/examples/css3d_periodictable.html(球体版)

我修改了代码一点点跟我对象的工作,但什么都没有改变数学背后。

我的问题是,如果有人可以解释什么是正确的发生在位置的计算。

这是代码:

for (var i = 0, l = 30; i < l; i ++) { 

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

    var object = new THREE.Mesh(geometry, material); 

    object.position.x = 1000 * Math.cos(theta) * Math.sin(phi); 
    object.position.y = 1000 * Math.sin(theta) * Math.sin(phi); 
    object.position.z = 1000 * Math.cos(phi); 

    scene.add(object); 

} 

我希望有人能够帮助我

在此先感谢

回答

3

此代码转化直角坐标球面坐标。在坐标系转换中检查this wikipedia entry

绘制球体的最佳方式;)