参考: http://www.yanhuangxueyuan.com/Three.js_course/copy.html
//创建场景对象
var scene = new THREE.Scene();
//创建一个立方体几何对象
var box = new THREE.BoxGeometry(50, 50, 50);
// 克隆几何体
var box2 = box.clone();
box2.translate(100, 25, 0);
//材质对象
var material = new THREE.MeshLambertMaterial({
color: 0x0000ff
});
var material2 = new THREE.MeshLambertMaterial({
color: 0x00ff00
});
//网格模型对象
var mesh = new THREE.Mesh(box, material);
var mesh2 = new THREE.Mesh(box2, material2);
//网格模型添加到场景中
scene.add(mesh);
scene.add(mesh2);
// 几何体复制
var copyBox = new THREE.BoxGeometry(50, 50, 50);
var sphere = new THREE.SphereGeometry(10, 40, 40);
// 球体数据复制到bos几何体
copyBox.copy(sphere);
var copyMaterial = new THREE.MeshLambertMaterial({
color: 0x0000ff
});
var copyMesh = new THREE.Mesh(copyBox, copyMaterial);
copyMesh.translateX(-100);
copyMesh.translateY(-30);
scene.add(copyMesh);
// 网格模型克隆
var copyBox2 = new THREE.BoxGeometry(50, 50, 50);
var copyMaterial2 = new THREE.MeshLambertMaterial({
color: 0x00ff00
});
var copyMesh2 = new THREE.Mesh(copyBox2, copyMaterial2);
var copyMesh3 = copyMesh2.clone();
copyMesh2.translateX(-200);
copyMesh2.translateY(-80);
copyMesh3.translateX(-200);
copyMesh3.translateY(-200);
// 几何体缩放
copyBox2.scale(1.5, 1.5, 1.5);
scene.add(copyMesh2);
scene.add(copyMesh3);
//点光源
var point = new THREE.PointLight(0xffffff);
//点光源位置
point.position.set(400, 200, 300);
//点光源添加到场景中
scene.add(point);
//环境光
var ambient=new THREE.AmbientLight(0x444444);
scene.add(ambient);
var width = window.innerWidth;
var height = window.innerHeight;
//窗口宽高比
var k = width / height;
//三维场景缩放系数
var s = 150;
//创建相机对象
var camera = new THREE.OrthographicCamera(-s * k, s * k, s, -s, 1, 1000);
//设置相机位置
camera.position.set(200, 300, 200);
//设置相机方向(指向的场景对象)
camera.lookAt(scene.position);
// 创建渲染器对象
var renderer = new THREE.WebGLRenderer();
renderer.setSize(width, height);
//设置背景颜色
renderer.setClearColor(0xb9d3ff, 1);
document.body.appendChild(renderer.domElement);
//执行渲染操作
renderer.render(scene, camera);
|