用半径/直径而不是x,y,z转换摄像机?

时间:2019-02-01 03:47:11

标签: javascript math three.js translate radius

所以我有一个如下所示的示例,我想知道是否有可能通过更改半径和直径而不是使用x,y,z位置(矢量)来平移摄像机。目前,我正在使用多维数据集,但我想基本上添加第二台摄像机。

enter image description here

既然我知道0,0,0(原点)在哪里,有什么方法可以通过设置直径半径或所需的任何东西来平移立方体并将其锁定在原点上吗?

我用来移动多维数据集(Three.js)的内容

Either a b

我想要实现的目标: enter image description here

1 个答案:

答案 0 :(得分:6)

使用SphericalsetFromSpherical

var r = 10;
var theta = 310 * (Math.PI / 180); /// 310 degree to radians

var sphericalPos = new THREE.Spherical(r, 0, theta);
cube_Mesh.position.setFromSpherical(sphericalPos);
// or just do cube_Mesh.position.setFromSphericalCoords(radius, phi, theta)
  

球形(半径:浮点,phi:浮点,theta:浮点)

     
      
  • radius-半径或从点到原点的欧几里得距离(直线距离)。默认值为1.0。
  •   φ-与y(上)轴的极角。默认值为0。   
  • theta-绕y(上)轴的赤道角。默认值为0。
  •   
     

极点(phi)在y轴的正向和负向。赤道(theta)从正z开始。