Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 3.js球坐标公式_Math_Three.js_Spherical Coordinate - Fatal编程技术网

Math 3.js球坐标公式

Math 3.js球坐标公式,math,three.js,spherical-coordinate,Math,Three.js,Spherical Coordinate,我试图找出下一个示例中发生了什么 (球体版本) 因此,我的问题是: 1) 你是如何得到这些公式的 2) 为什么要用物体的长度来获得φ和θ?注意,φ的变化范围为π到0,对应于反余弦定律,而θ线性依赖于φ。所以这些角度的组合在半球表面形成螺旋形(给定的代码不包含形成第二半球的线索) 反余弦定律提供了等距线圈(线圈?不知道螺旋转弯的确切术语)。θ的线性相关性给出了方位角(子午角)上的一些分布Sqrt(Pi*L)由于总螺旋长度(适合L个项目),已选择乘数 看看周期表开始的球面极点——氢在极点,氦靠近它,

我试图找出下一个示例中发生了什么
(球体版本)

因此,我的问题是:

1) 你是如何得到这些公式的


2) 为什么要用物体的长度来获得φ和θ?

注意,
φ
的变化范围为π到0,对应于反余弦定律,而
θ
线性依赖于
φ
。所以这些角度的组合在半球表面形成螺旋形(给定的代码不包含形成第二半球的线索)

反余弦定律提供了等距线圈(线圈?不知道螺旋转弯的确切术语)。θ的线性相关性给出了方位角(子午角)上的一些分布<代码>Sqrt(Pi*L)由于总螺旋长度(适合L个项目),已选择乘数

看看周期表开始的球面极点——氢在极点,氦靠近它,锂在下一个,等等——形成螺旋


请注意,
phi/theta
名称不同于常见(和wiki页面)名称-这里theta是方位角。

谢谢,我说的对吗?循环中的所有phi值将始终在“Pi到0”的范围内,如果我设置I=L和I=0,我将得到这两个边界“0和Pi”?事实上,我现在才注意到螺旋!但为什么是Sqrt,为什么是L而不是每个物体的大小?Sqrt(Pi*L)像螺旋长度的公式吗?也许有一些数学解释的链接也会有帮助是的,0..Pi是反余弦主值的范围。当i=L和0时,得到0和π。对象应沿所有螺旋分布,因此已使用其长度。我不知道这个球形螺旋长度的公式,但它可以通过曲线元素(微分几何)上的积分推导出来。
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 );
    ...
}
var phi = Math.acos( -1 + ( 2 * i ) / l );
var theta = Math.sqrt( l * Math.PI ) * phi;