📅  最后修改于: 2023-12-03 15:27:09.584000             🧑  作者: Mango
three.js是基于WebGL的JavaScript 3D库,为使用JavaScript创建3D图形提供了易于使用的接口。
本文将介绍如何使用three.js创建一个简单的三角形。
首先需要引入three.js库。可以在HTML中通过以下代码引入:
<script src="https://cdn.bootcdn.net/ajax/libs/three.js/r128/three.min.js"></script>
在three.js中,所有的3D对象都需要被添加到场景中才能被渲染出来。因此,我们需要先创建一个场景:
const scene = new THREE.Scene();
相机用于定义可见区域。我们可以使用正交或透视摄像机来解释场景。在这个例子中,我们将使用透视相机:
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
其中75表示视角角度,window.innerWidth / window.innerHeight表示渲染区域的宽高比,0.1表示可见最近距离,1000表示可见最远距离。
为了使相机能够看到场景,我们需要将它放置在正确的位置:
camera.position.z = 5;
渲染器将场景和相机渲染成像素。我们可以使用默认的WebGL渲染器:
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
其中,setSize()方法定义了渲染器输出画布的大小,document.body.appendChild()将渲染器的画布添加到网页中。
创建一个三角形需要定义三个顶点。在three.js中,每个顶点都是一个THREE.Vector3对象。
const triangleGeometry = new THREE.Geometry();
const v1 = new THREE.Vector3(0, 0, 0);
const v2 = new THREE.Vector3(1, 0, 0);
const v3 = new THREE.Vector3(0, 1, 0);
triangleGeometry.vertices.push(v1);
triangleGeometry.vertices.push(v2);
triangleGeometry.vertices.push(v3);
接下来,我们需要将这三个顶点连接起来形成一个三角形:
triangleGeometry.faces.push(new THREE.Face3(0, 1, 2));
最后,我们需要创建一个材质并将它应用于三角形:
const triangleMaterial = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
const triangleMesh = new THREE.Mesh(triangleGeometry, triangleMaterial);
scene.add(triangleMesh);
最后一步是使用渲染器将场景和相机渲染成像素:
function animate() {
requestAnimationFrame(animate);
renderer.render(scene, camera);
}
animate();
const scene = new THREE.Scene();
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);
const triangleGeometry = new THREE.Geometry();
const v1 = new THREE.Vector3(0, 0, 0);
const v2 = new THREE.Vector3(1, 0, 0);
const v3 = new THREE.Vector3(0, 1, 0);
triangleGeometry.vertices.push(v1);
triangleGeometry.vertices.push(v2);
triangleGeometry.vertices.push(v3);
triangleGeometry.faces.push(new THREE.Face3(0, 1, 2));
const triangleMaterial = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
const triangleMesh = new THREE.Mesh(triangleGeometry, triangleMaterial);
scene.add(triangleMesh);
function animate() {
requestAnimationFrame(animate);
renderer.render(scene, camera);
}
animate();
使用three.js创建三角形的过程比较简单,只需定义三个顶点并连接它们,然后创建一个材质并将它应用于三角形即可。本文只是介绍了基本的流程,three.js还提供了更加高级的功能和可定制选项。