Я поместил несколько сфер на свой холст, используя Три. js. Чтобы показать несколько сфер в разных местах, я использовал код, приведенный ниже. Тем не менее, я вижу только одну сферу, и для проверки расположения сфер я сделал console.log (xxx.clone ());
var scene = new THREE.Scene();
scene.background = new THREE.Color( 0xf0f0f0 )
var camera = new THREE.PerspectiveCamera(50, window.innerWidth/window.innerHeight, 0.1, 3000);
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
// end template here
var coord =[{"x":10,"y":0,"z":10},{"x":20,"y":0,"z":30},{"x":30,"y":0,"z":50},
{"x":40,"y":0,"z":70},{"x":50,"y":0,"z":90},
{"x":60,"y":0,"z":110},{"x":70,"y":0,"z":90},
{"x":80,"y":0,"z":70},{"x":90,"y":0,"z":50},
{"x":100,"y":0,"z":30},{"x":110,"y":0,"z":10}]
var sphr =[];
function drawsphre(){
for (let i =0; i<coord.length; i++){
var geom = new THREE.SphereGeometry( 100, 50, 50);
var a = new THREE.Vector3(coord[i].x*100, coord[i].y, coord[i].z*10)
geom.center(a)
var mat = new THREE.MeshBasicMaterial({color: "yellow"});
sphr[i] = new THREE.Mesh( geom, mat);
sphr[i] = new THREE.Mesh(geom,mat);
scene.add(sphr[i]);
console.log(sphr[i].clone())
}
}
drawsphre();
camera.position.x = 400;
camera.position.y = 300;
camera.position.z = 1000;
var light = new THREE.AmbientLight( 0x404040 ); // soft white light
scene.add( light );
// White directional light at 70% intensity shining from the top.
var directionalLight = new THREE.DirectionalLight( 0xffffff, 0.7 );
scene.add( directionalLight );
// movement
renderer.render(scene, camera);
Однако в журнале консоли указано, что положение всех сфер установлено по умолчанию. что составляет (0,0,0). и на холсте я мог видеть только одну сферу.
Согласно трем документам. js, мне нужно go с vector3, чтобы указать позицию, но не похоже, что она работает.
Может ли кто-нибудь мне помочь?