2014-10-15 3 views
1

У меня есть куб, и мне нужно создать небольшую сферу для каждой вершины куба, как я могу это сделать? Я пытался написать что-то, но ничего не работает. Ниже мой куб:Three.js создает сферу, центрированную на вершинах куба

var geometry0 = new THREE.Geometry() 
geometry0.vertices = [new THREE.Vector3(0.5, -0.5, 0.5), new THREE.Vector3(-0.5, -0.5, 0.5), new  
THREE.Vector3(-0.5, -0.5, -0.5), new THREE.Vector3(0.5, -0.5, -0.5), new THREE.Vector3(0.5, 0.5, 
0.5), new THREE.Vector3(-0.5, 0.5, 0.5), new THREE.Vector3(-0.5, 0.5, -0.5), new  
THREE.Vector3(0.5, 0.5, -0.5)]; 
geometry0.faces = [new THREE.Face3(3, 2, 1), new THREE.Face3(3, 1, 0), new THREE.Face3(4, 5, 6), 
new THREE.Face3(4, 6, 7), new THREE.Face3(0, 1, 5), new THREE.Face3(0, 5, 4), new THREE.Face3(1, 
2, 6), new THREE.Face3(1, 6, 5), new THREE.Face3(2, 3, 7), new THREE.Face3(2, 7, 6), new 
THREE.Face3(3, 0, 4), new THREE.Face3(3, 4, 7)]; 

geometry0.computeFaceNormals(); 
geometry0.computeVertexNormals(); 
var material0 = new THREE.MeshBasicMaterial({ color: 0x39d2dbe7fff39d2, transparent: true, opacity: 0 }); 
mesh0 = new THREE.Mesh(geometry0, material0); 
egh0 = new THREE.EdgesHelper(mesh0, 0x000); 
egh0.material.linewidth = 2; 
scene.add(egh0); 

ответ

0

Я бы перебирать вершины куба, и для каждого Vertice, создать сферу с центром в этой точке.

Пример кода может быть следующим (рисунок красные сферы с радиусом 0.2):

var spheres = []; 
for (var i=0 ; i<geometry0.vertices.length ; i++){ 
    var sphereGeometry = new THREE.SphereGeometry(0.2,10,10); 
    var sphereMaterial = new THREE.MeshBasicMaterial({color: 0xff0000,opacity:1}); 
    var spheres[i] = new THREE.Mesh(sphereGeometry,sphereMaterial); 
    spheres[i].position.set(geometry0.vertices[i].x, 
         geometry0.vertices[i].y, 
         geometry0.vertices[i].z); 
    scene.add(spheres[i]); 
} 
Смежные вопросы