2015-03-31 1 views
0

Я пытаюсь организовать 10 сфер в кольце. Это вычисление я поставил вместе до сих пор, но он не работаетрасчет для упорядочивания шариков в кольце

  var bubbleGeo = new THREE.SphereGeometry(300, 20, 20); 
      var bubbleMat = new THREE.MeshLambertMaterial({ color: 0x888888 }); 
      var numBubbles = 10; 
      var bubbleMesh; 
      var bubbles = []; 
      var startX = 0; 
      var startY = 500; 
      var spacing = 80 * Math.sin(angle); 
      for (var i=0; i<numBubbles; i++) { 
       bubbleMesh = new THREE.Mesh(bubbleGeo, bubbleMat); 
       console.log("bubble" + i); 
       var angle = 360/numBubbles*i*Math.PI/180; 
       bubbleMesh.position.set((startX + Math.cos(angle)*bubbleR) + spacing, 
             (startY + Math.sin(angle)*bubbleR) + spacing, 
             100 
             ); 
       scene.add(bubbleMesh); 
       bubbles.push(bubbleMesh); 
      } 

Я не очень много знаю о математике. Если есть люди, которые видят, где я поступил не так, любая помощь была бы очень полезной. Благодаря!

+0

Так что же случилось? Какой результат вы получили и как это изменилось от результата, который вы эксиксировали? –

+0

Я не могу понять вашу переменную угла. Я думаю, вам нужны скобки. Кроме того, может быть полезной ссылка jsfiddle ... – aarman

+0

Woot hey guys спасибо за ваши сообщения. Что-то не так, как будто оно вообще не показывалось. Несмотря на то, что я смог исправить эту проблему, вы правы, я должен опубликовать сценарий этого проекта, потому что у него все еще есть способы пойти. но прямо сейчас, это исправленное уравнение: –

ответ

0
  var bubbleR = 400; 
      var bubbleGeo = new THREE.SphereGeometry(bubbleR, 10, 10); 
      var bubbleMat = new THREE.MeshLambertMaterial({ color: 0x888888 }); 
      var numBubbles = 5; 
      var bubbleMesh; 
      bubbles = []; 
      var startX = 1000; 
      var startZ = 1000; 
      for (var i=0; i<numBubbles; i++) { 
       bubbleMesh = new THREE.Mesh(bubbleGeo, bubbleMat); 
       var angle = 360/numBubbles*i*Math.PI/180; 
       bubbleMesh.position.set((startX + Math.sin(angle)*bubbleR) * 2, 
             1000, 
             startZ + (Math.cos(angle)*bubbleR) * 2 
       ); 
       scene.add(bubbleMesh); 
       bubbles.push(bubbleMesh);  
      } 

По какой-то причине, если я добавлю массив в сцену после цикла, это не сработает. Также я хотел бы, чтобы они были в новой группе THREE. Таким образом, я мог бы позиционировать всю группу, но на данный момент это не работает

Смежные вопросы