Three.js-硬要自学系列7 (查看几何体顶点位置和索引、旋转,缩放,平移几何体)

本章主要学习知识点

  • 学会如何查看几何体的顶点位置数据以及索引
  • 设置几何体旋转、缩放、平移,以及居中模型

查看几何体顶点位置和索引

首先创建几个常见的几何体,方便我们进行查看

js 复制代码
// 创建长方体
const boxGeometry = new THREE.BoxGeometry(3,3,3,4,3);
// 创建球体
const sphereGeometry = new THREE.SphereGeometry(2,64,32);
// 创建圆柱体 
const cylinderGeometry = new THREE.CylinderGeometry(2,2,5);
// 创建矩形平面
const planeGeometry = new THREE.PlaneGeometry(3,3,4,4);
// 创建圆形平面
const circleGeometry = new THREE.CircleGeometry(2)

几何体的顶点数据存储在 posistion属性上

js 复制代码
//输出立方体的顶点信息
console.log(boxGeometry.attributes.position);

顶点数据集合以数组的形式存储在array字段中,count表示顶点数

索引存储在几何体对象的index属性上

js 复制代码
//输出立方体的索引
console.log(boxGeometry.index);

这里要注意的是count为228,表示拥有228个索引,每三个索引组成一个顶点

你可以尝试输出其它几何体的顶点和索引,查看它们彼此之间的区别

索引、旋转,缩放,平移几何体

创建一个矩形平面,它是两面可见的

通过scale设置缩放

js 复制代码
// x轴和z轴上缩放2倍,Y轴不变
geometry.scale(2,1,2)

通过translate设置平移

js 复制代码
// 将几何体在X轴上平移至3,Y轴平移至1,Z轴保持不变
geometry.translate(3,1,0)

通过rotate设置旋转

js 复制代码
// 将几何体在x,y,z轴上各旋转45度
geometry.rotateX(Math.PI/4)
geometry.rotateY(Math.PI/4)
geometry.rotateZ(Math.PI/4)

通过center将几何体设置到原点

当我们缩放,平移,旋转几何体后,其已经不在原点,通过调用几何体对象的center方法,可快速将几何体修正到原点

js 复制代码
geometry.scale(2,1,2)
// 平移
geometry.translate(3,1,0)

// // 旋转 
geometry.rotateX(Math.PI/4)
geometry.rotateY(Math.PI/4)
geometry.rotateZ(Math.PI/4)
js 复制代码
geometry.center()

以上就是本章的全部内容,内容不难,但需要通过大量的练习和实操才能更快的上手,其实很多东西并没有想象的那么困难,每天啃一点,学一点,时间总会给出答案,我很反感一开始就扣概念搞原理,任何一门知识的学习都要经过由浅入深这个过程,先做,做出个东西,哪怕是狗屎,管它完美不完美,在学习的过程中阶段性拿到结果,获得成就感,难到不是学习过程中的正向反馈么,加油!敬自己

以上案例均可在案例中心查看体验

THREE 案例中心

相关推荐
fuyongliang1234 小时前
Linux shell 脚本基础 003
java·服务器·前端
lypzcgf6 小时前
Coze源码分析-工作空间-项目开发-前端源码
前端·人工智能·typescript·系统架构·开源软件·react·安全架构
yuguo.im6 小时前
Chrome DevTools Performance 是优化前端性能的瑞士军刀
前端·javascript·性能优化·chrome devtools
FSHOW8 小时前
【独立开发日记】MQ端到端类型安全
前端·javascript·后端
老华带你飞9 小时前
社区互助|基于SSM+vue的社区互助平台的设计与实现(源码+数据库+文档)
java·前端·数据库·vue.js·小程序·毕设·社区互助平台
一支鱼9 小时前
前端使用次数最多的工具封装
前端·typescript·编程语言
GIS之路9 小时前
GDAL 简介
前端
前端工作日常9 小时前
单元测试与E2E测试中使用浏览器的原因及区别
前端·单元测试
Js_cold10 小时前
Notepad++使用技巧1
前端·javascript·fpga开发·notepad++
接着奏乐接着舞。10 小时前
前端RSA加密遇到Java后端解密失败的问题解决
java·开发语言·前端