📜  threejs 立方体网格 - Javascript (1)

📅  最后修改于: 2023-12-03 15:05:35.422000             🧑  作者: Mango

Three.JS 立方体网格

Three.JS是一个用于在Web上创建3D图形的JavaScript库。它是一个轻量级库,可以非常容易地将3D场景添加到Web应用程序中。在Three.JS中,可以使用几何体创建以及展示3D对象。在这个文章中,我们将了解一下如何创建并展示一个立方体网格。

准备工作

在使用Three.JS来创建一个立方体网格之前,你需要先引入它:

<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
创建立方体

在Three.JS中,我们可以使用BoxGeometry来创建立方体。BoxGeometry接受三个参数:width,height和depth。下面是一个创建宽为1,高为1,深为1的立方体的示例:

const geometry = new THREE.BoxGeometry(1, 1, 1);
创建网格

要将立方体呈现在屏幕上,我们需要将其与材料(material)结合。材料是用来定义几何体的外观的,例如颜色,纹理等等。在这个示例中,我们将使用MeshBasicMaterial,这是一个简单的材料,它只有颜色属性。

const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });

接下来,我们将使用Mesh来将几何体和材质结合在一起。

const cube = new THREE.Mesh(geometry, material);
创建场景、相机和渲染器

接下来,我们需要创建场景,相机和渲染器,以便将几何体呈现在屏幕上。

const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
放置立方体

最后,我们需要将立方体放置到场景中,并将相机放置到合适的位置,以便将立方体呈现在屏幕上。在这里,我们将立方体放置到位置(0,0,-5)。

cube.position.z = -5;
scene.add(cube);
camera.position.z = 5;
渲染场景

最后,我们需要使用渲染器将场景呈现在屏幕上。

function animate() {
  requestAnimationFrame(animate);
  cube.rotation.x += 0.01;
  cube.rotation.y += 0.01;
  renderer.render(scene, camera);
}
animate();

这将使立方体在x轴和y轴上旋转,并渲染场景。

完整代码
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Three.JS 立方体网格</title>
    <style>
      body {
        margin: 0;
        overflow: hidden;
      }
    </style>
  </head>
  <body>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
    <script>
      const geometry = new THREE.BoxGeometry(1, 1, 1);
      const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
      const cube = new THREE.Mesh(geometry, material);
      cube.position.z = -5;
      const scene = new THREE.Scene();
      scene.add(cube);
      const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
      camera.position.z = 5;
      const renderer = new THREE.WebGLRenderer();
      renderer.setSize(window.innerWidth, window.innerHeight);
      document.body.appendChild(renderer.domElement);
      function animate() {
        requestAnimationFrame(animate);
        cube.rotation.x += 0.01;
        cube.rotation.y += 0.01;
        renderer.render(scene, camera);
      }
      animate();
    </script>
  </body>
</html>
结论

Three.JS是一个非常强大的JavaScript库,可以用来创建3D图形。在本文中,我们了解了如何使用BoxGeometry,MeshBasicMaterial,Mesh,Scene,Camera,WebGLRenderer等组件来创建并呈现一个立方体网格。希望这个例子可以让你更加了解Three.JS,如果你想要更深入地了解它,请访问官方网站。