如何在three.js中创建多个几何图形

How to create multiple geometries in three.js?

本文关键字:创建 几何图形 js three      更新时间:2023-09-26

嗨,我目前正在使用three.js,我想在轴的4个部分创建4个立方体。我可以创建一个旋转的立方体但如何创建另外三个呢?,我已经尝试了clone()函数和位置。集合,但我似乎无法在不同的轴上创建另一个立方体。谢谢你的帮助和指导这是我的javascript

var camera;
var scene;
var renderer;
var mesh;
init();
animate();
function init() {
    scene = new THREE.Scene();
    camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 1, 1000);
    var light = new THREE.DirectionalLight( 0xffffff );
    light.position.set( 0, 1, 1 ).normalize();
    scene.add(light);
    var geometry = new THREE.CubeGeometry( 10, 10, 10);
    var material = new THREE.MeshPhongMaterial( { ambient: 0x050505, color: 0x0033ff, specular: 0x555555, shininess: 30 } );
    mesh = new THREE.Mesh(geometry, material );
    mesh.position.z = -50;
    scene.add( mesh );
    renderer = new THREE.WebGLRenderer();
    renderer.setSize( window.innerWidth, window.innerHeight );
    document.body.appendChild( renderer.domElement );
    window.addEventListener( 'resize', onWindowResize, false );
    render();
}
function animate() {
    mesh.rotation.x += .04;
    mesh.rotation.y += .02;
    render();
    requestAnimationFrame( animate );
}
function render() {
    renderer.render( scene, camera );
}
function onWindowResize() {
    camera.aspect = window.innerWidth / window.innerHeight;
    camera.updateProjectionMatrix();
    renderer.setSize( window.innerWidth, window.innerHeight );
    render();
}

你将克隆添加到场景中了吗?

var newMesh = mesh.clone();
newMesh.position.x = 50;
scene.add(newMesh);

你可以在这里看到一个工作的codependency