2017-03-03 83 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

繪製球體的最佳方式;)