我試圖找出什麼是下一個例子回事
https://threejs.org/examples/css3d_periodictable.html(球體版)three.js所球面座標公式
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);
...
}
我讀了一些文章數學(有剛剛轉換的說明球座標到笛卡爾),並發現這個問題 Can someone explain the formula。由於我的名譽,我不可能在那裏發表評論,但是我仍然不明白他們是如何得到這兩個公式的。
var phi = Math.acos(-1 + (2 * i)/l);
var theta = Math.sqrt(l * Math.PI) * phi;
所以我的問題是:
1)你如何獲得這些公式?
2)爲什麼用來獲得phi和theta的對象的長度?
謝謝,我是對的,循環中phi的所有值總是在從「Pi到0」的範圍內,如果我設置** i = L **和** i = 0 **,我會得到這兩個邊界「0和Pi」? 其實我現在才注意到螺旋!但是爲什麼Sqrt,爲什麼L並不是每個對象的大小? Sqrt(Pi * L)是否像一個螺旋長度的公式?也許是有一些數學解釋的鏈接,它也會有幫助 –
是的,0..Pi是反餘弦主體值的範圍。隨着i = L和0,你會得到0和Pi。對象應該沿着所有螺旋分佈,所以它的長度已被使用。我不知道這個球形螺旋長度的公式,但它可以通過積分曲線元素(微分幾何)推導出來。 – MBo