word里怎么画三棱锥,word基本棱锥图怎么增加层数

首页 > 经验 > 作者:YD1662024-02-12 03:54:14

本文在前节的基础上,介绍three.js其它的内置几何体。

一、准备代码

// 引入Three.js库的全部功能,并将其命名为THREE import * as THREE from 'three'; // 引入交互控制器 import {OrbitControls} from 'three/examples/jsm/controls/OrbitControls.js'; // 创建一个场景 const scene = new THREE.Scene(); // 创建一个透视相机,参数分别为视野角度、视口宽高比、近端距离、远端距离 const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); // 创建一个WebGL渲染器 const renderer = new THREE.WebGLRenderer(); // 设置渲染器的大小为窗口的宽度和高度 renderer.setSize(window.innerWidth, window.innerHeight); // 将渲染器的canvas元素添加到HTML文档中的body标签中 document.body.appendChild(renderer.domElement); //------------- 下面放创建几何体的代码 ----------------------- const geometry = new THREE.BoxGeometry(1, 1, 1); const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 }); const myGeometry = new THREE.Mesh(geometry, material); scene.add(myGeometry); //--------------- 创建几何体代码结束 -------------------------- // 创建一个平行光源 const directionalLight = new THREE.DirectionalLight(0xffffff, 1); directionalLight.position.set(1, 1, 1).normalize(); // 设置光源的方向 scene.add(directionalLight); const controls = new OrbitControls(camera, renderer.domElement); camera.position.z = 5; // 创建一个动画函数 function animate() { // 请求下一帧动画 requestAnimationFrame(animate); // 更新 OrbitControls controls.update(); myGeometry.rotation.x = 0.01; myGeometry.rotation.y = 0.01; // 渲染场景 renderer.render(scene, camera); } animate()

在上面的示例代码里,注释部分 下面放创建几何体的代码到 创建几何体代码结束之间是放后续示例代码的位置。

示例中使用了一个平行光源,关于光源的使用方法在后续章节详细介绍。

二、 three.js 更多几何体的介绍1. 胶囊几何体(CapsuleGeometry)2.1.1 胶囊几何体说明

胶囊几何体是一种有球形顶端和圆柱形部分组合的几何体。
其构造函数:

THREE.CapsuleGeometry(radiusTop, radiusBottom, height, radialSegments, heightSegments, cappedTop, cappedBottom, thetaStart, thetaLength)

参数说明:

2.1.2 示例代码

const geometry = new THREE.CapsuleGeometry( 1, 1, 4, 8 ); const material = new THREE.MeshPhongMaterial( {color: 0x00ff00} ); const myGeometry = new THREE.Mesh( geometry, material ); scene.add( myGeometry );

运行效果:

word里怎么画三棱锥,word基本棱锥图怎么增加层数(1)


本示例中使用了一个新的材质 : MeshPhongMaterial,这种材质基于 Phong 反射模型,用于模拟物体表面的光照和阴影。 关于材质的具体使用方式也在后续章节详细介绍。

通过增加 radialSegments 分段数,可以看到球体变得更圆滑:

word里怎么画三棱锥,word基本棱锥图怎么增加层数(2)

2. 圆锥体(ConeGeometry)2.2.1 圆锥体介绍

圆锥体是一种具有尖顶和圆锥底部的几何体。 构造函数如下:

THREE.ConeGeometry(radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength)

其参数说明:

2.2.2 示例代码

const geometry = new THREE.ConeGeometry( 1, 1, 20, 40 ); const material = new THREE.MeshPhongMaterial( {color: 0x00ff00} ); const myGeometry = new THREE.Mesh( geometry, material ); scene.add( myGeometry );

运行效果:

word里怎么画三棱锥,word基本棱锥图怎么增加层数(3)

3. 十二面体(DodecahedronGeometry )2.3.1 十二面体简介

十二面体是一种具有 12 个面的多面体。DodecahedronGeometry 的构造函数的参数如下:
THREE.DodecahedronGeometry(radius, detail)

参数说明:

当detail值非0时,几何体每个面会被分成更多的三角形,以致于detail比较大的时候,展现出来的几何体会像个球体。

2.3.2 示例代码

const radius = 2; const detail = 0; const dodecahedronGeometry = new THREE.DodecahedronGeometry(radius, detail); const material = new THREE.MeshPhongMaterial({ color: 0x00ff00 }); const myGeometry = new THREE.Mesh(dodecahedronGeometry, material); scene.add(myGeometry);

运行效果:

word里怎么画三棱锥,word基本棱锥图怎么增加层数(4)

首页 12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.