は、私は次の例で何が起こっているのかを把握しようとしている座標
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。私の評判のためにそこにコメントを残すことは不可能でしたが、それでもこれらの2つの式をどうやって得たのかまだ分かりません。
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 **を設定するとこれらの2つの境界「0とPi」を正確に取得しますか? 実際、私は今、スパイラルに気づいただけです!しかし、なぜSqrt、なぜLと各オブジェクトのサイズではないのですか? Sqrt(Pi * L)はスパイラルの長さの式のようですか?多分数学の説明へのリンクがあるかもしれません。それは役に立ちます –
はい、0..Piは円錐主義値の範囲です。 i = Lと0を指定すると、0とPiが得られます。オブジェクトはすべてのスパイラルに沿って配布する必要があるため、長さが使用されています。この球状スパイラル長の式はわかりませんが、曲線要素上の積分(微分ジオメトリ)によって推論することができます。 – MBo