将对象映射到球体外部

时间:2014-02-04 22:28:15

标签: 3d three.js

说我有一个x球体网格阵列,我希望以一种所有对象组合看起来像一个大球体的方式添加到场景中。我该怎么做呢?

我可以将它们映射成一个圆圈,但3D部分有点难度。

这是用于以圆圈方式绘制它们的代码:

var theta = 0;
var rad = 5 * objectsToAddToScene.length;

for (var i = 0; i < objectsToAddToScene.length; i++) {

  var obj = objectsToAddToScene[i];

  theta = ((Math.PI * 2) / objectsToAddToScene.length) * i;

  obj.position.x = Math.sin(theta) * rad;
  obj.position.y = -Math.cos(theta) * rad;

  Three.addObjToScene(obj);
 }; 

与此示例相同http://threejs.org/examples/webgl_interactive_cubes_gpu.html 但是有一个球体,只是将物体放在外边框上

1 个答案:

答案 0 :(得分:2)

一种方法是让three.js为你做。

var geometry = new THREE.SphereGeometry( radius, n, n/2 );
geometry.mergeVertices();

然后使用geometry.vertices作为您的职位。

或者,您可以使用IcosahedronGeometry( radius, n );

three.js r.65