threejs 几何体复制克隆

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:35   1941   0

参考: 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);

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP