Javascript 三个.js从球体分割面

Javascript 三个.js从球体分割面,javascript,3d,three.js,geometry,Javascript,3d,Three.js,Geometry,我正在创建一个球体几何体 geometry = new THREE.SphereGeometry( 200, 20, 10 ); material = new THREE.MeshLambertMaterial({ shading: THREE.FlatShading, color: 0xff0000 }); sphere = new THREE.Mesh(geometry, material); scene.add( sphere ); 我想要的是,当我单击此几何体时,面将分离,如下面的示例

我正在创建一个球体几何体

geometry = new THREE.SphereGeometry( 200, 20, 10 );
material = new THREE.MeshLambertMaterial({ shading: THREE.FlatShading, color: 0xff0000 });
sphere = new THREE.Mesh(geometry, material);
scene.add( sphere );
我想要的是,当我单击此几何体时,面将分离,如下面的示例所示。 (单击球体按钮以查看分离的面)

您发布的示例的完整代码可在此处找到:

具体来说,示例的这一部分:

var vector = new THREE.Vector3();

    for ( var i = 0, l = objects.length; i < l; i ++ ) {

        var phi = Math.acos( -1 + ( 2 * i ) / l );
        var theta = Math.sqrt( l * Math.PI ) * phi;

        var object = new THREE.Object3D();

        object.position.x = 800 * Math.cos( theta ) * Math.sin( phi );
        object.position.y = 800 * Math.sin( theta ) * Math.sin( phi );
        object.position.z = 800 * Math.cos( phi );

        vector.copy( object.position ).multiplyScalar( 2 );

        object.lookAt( vector );

        targets.sphere.push( object );

    }
var vector=new THREE.Vector3();
for(var i=0,l=objects.length;i
也许您可以在本地重新创建此代码,以便更好地了解其工作原理,然后根据需要对其进行调整。

例如,请参见。但在本例中,您必须更改一行以使其正常工作:
uniforms.amplium.value=10*Math.sin(time*0.5)程序正在运行,但效果不明显,因为更改太小。