three.js常用几何体介绍以及自定义几何体

2023-11-01

一、自定义三角形几何体

在这里插入图片描述
核心代码:

// 添加物体
// 创建几何体
for (let i = 0; i < 50; i++) {
  // 每一个三角形,需要3个顶点,每个顶点需要3个值
  const geometry = new THREE.BufferGeometry();
  const positionArray = new Float32Array(9);
  for (let j = 0; j < 9; j++) {
    positionArray[j] = Math.random() * 10 - 5;
  }
  geometry.setAttribute(
    "position",
    new THREE.BufferAttribute(positionArray, 3)
  );
  let color = new THREE.Color(Math.random(), Math.random(), Math.random());
  const material = new THREE.MeshBasicMaterial({
    color: color,
    transparent: true,
    opacity: 0.5,
  });
  // 根据几何体和材质创建物体
  const mesh = new THREE.Mesh(geometry, material);
  scene.add(mesh);
}

二、常用几何体介绍

1. 立方缓冲几何体(BoxGeometry)

BoxGeometry是四边形的原始几何类,它通常使用构造函数所提供的“width”、“height”、“depth”参数来创建立方体或者不规则四边形。
在这里插入图片描述
代码示例

        const geometry = new THREE.BoxGeometry( 1, 1, 1 );
		const material = new THREE.MeshBasicMaterial( {color: 0x00ff00} );
		const cube = new THREE.Mesh( geometry, material );
		scene.add( cube );
2.圆形缓冲几何体(CircleGeometry)

CircleGeometry是欧式几何的一个简单形状,它由围绕着一个中心点的三角分段的数量所构造,由给定的半径来延展。 同时它也可以用于创建规则多边形,其分段数量取决于该规则多边形的边数。
在这里插入图片描述
代码示例

const geometry = new THREE.CircleGeometry( 5, 32 );
const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );
const circle = new THREE.Mesh( geometry, material );
scene.add( circle )
3. 圆锥缓冲几何体(ConeGeometry)

一个用于生成圆锥几何体的类。
在这里插入图片描述
代码示例

        const geometry = new THREE.ConeGeometry( 5, 20, 32 );
		const material = new THREE.MeshBasicMaterial( {color: 0xffff00} );
		const cone = new THREE.Mesh( geometry, material );
		scene.add( cone );
4. 圆柱缓冲几何体(CylinderGeometry)

一个用于生成圆柱几何体的类。
在这里插入图片描述
代码示例

		const geometry = new THREE.CylinderGeometry( 5, 5, 20, 32 );
		const material = new THREE.MeshBasicMaterial( {color: 0xffff00} );
		const cylinder = new THREE.Mesh( geometry, material );
		scene.add( cylinder );

更多的就不一一列举了,感兴趣的朋友可以去官网看看。链接在下方
three.js官网常用几何体

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

three.js常用几何体介绍以及自定义几何体 的相关文章

随机推荐

  • pythonz字符串去重并排序

    项目场景 python练习题 问题描述 输入一个非空字符串 去除重复的字符后 从小到大排序输出为一个新字符串 原因分析 去重可以运用python中set数据类型的特性 然后将去重的set转为列表 再调用sort 函数进行排序即可 解决方案
  • 二维已经 OUT 了?3DPose 实现三维人体姿态识别真香

    作者 李秋键 出品 AI科技大本营 ID rgznai100 引言 人体姿态估计是计算机视觉领域很多研究工作的基础 也是研究的热点问题 在行为识别 人机交互 姿态跟踪等领域有着广泛的应用前景 按照人体姿态维度的差异 可以将人体姿态估计任务分
  • Windows FFmpeg 多张图片合并视频

    执行指令 ffmpeg f image2 i images d jpg vcodec libx264 r 25 b 200k test mp4 图片资源截图 重点 图片资源名称的命名规则
  • JDK8 新特性-----对象::new

    public class demo public static void main String args 第一种方式 ICar iCar1 new ICar Override public Car getCar String name I
  • pycharm 安装第三方库方法

    pycharm 使用anaconda库并添加其他库 andconda 中可以添加多个虚拟环境 在安装路径下envs 文件下可以查看 安装的第三方库在D Anaconda3 Lib site packages 文件夹下 在运行程序时 在缺少安
  • 【C#学习笔记】读access2007

    using System using System Data OleDb namespace ConsoleApplication class Program static void Main string args string strC
  • A1103 Integer Factorization (30 分)(将N表示为K个整数的P次方的和)(DFS)(难)

    The K P factorization of a positive integer N is to write N as the sum of the P th power of K positive integers You are
  • STM32——DAC数模转换实验

    一 数模转换原理 STM32的DAC模块是十二位数字输入 电压输出型的DAC DAC可以配置为8位或12位模式 也可以与DMA控制器配合使用 DAC工作在12位模式时 数据可以设置成左对齐或者右对齐 DAC模块有2个输出通道 每个通道都有单
  • backgroundImage加载图片报403解决方法

    加载图片时报403错误 可能是链接防盗链导致 解决方法 在html中加入
  • join方法介绍

    首先给出结论 t join 方法只会使调用该方法的线程进入t对象的等待池 并等待t线程执行完毕后才会被唤醒 并不影响同一时刻处在运行状态的其他线程 一 使用方式 join是Thread类的一个方法 启动线程后直接调用 例如 Thread t
  • 数组的遍历方式(齐全)

    数组 遍历数组 Array 案例 arr1 1 2 3 arr2 3 4 5 arr3 arr1 arr2 log arr3 0 2 输出为 arr1 的 3 一 数组的概念 之前 变量只能存一个值 如果我们想存多个值呢 这就涉及到数组了
  • [翻译&摘抄] ES6 中的元编程:代理(Proxies)

    前面几篇博客已经写过了有关 Symbols 和 Reflect 相关的知识 首先来重复看一下 元编程是什么 元编程 笼统地说 是所有关于一门语言的底层机制 而不是数据建模或者业务逻辑那些高级抽象 如果程序可以被描述为 制作程序 元编程就能被
  • linux中r加载程序包_如何找出Linux中应用程序的确切软件包名称

    linux中r加载程序包 The Ubuntu Software Center allows you to easily add and remove programs in Ubuntu However each Linux distri
  • Linux服务器遭受黑客攻击时的日志分析排除

    0x00 前言 Linux系统拥有非常灵活和强大的日志功能 可以保存几乎所有的操作记录 并可以从中检索出我们需要的信息 本文简介一下Linux系统日志及日志分析技巧 0x01 日志简介 日志默认存放位置 var log 查看日志配置情况 m
  • Leedcode刷题技巧及方法总结(学习笔记,建议收藏,持续更新)

    1 int mid left right left 2 leedcode 278 有效防止mid溢出 2 想要更改链表链接顺序 可以考虑使用guard拆解链接 leecode 138 3 对于数组下标循环 右循环 cur size size
  • 强制Unity编译 Recompile

    I have a script that adds to ProjectFilesGenerator ProjectFileGeneration so it adds to the Assemblies every time they ar
  • conda 切换为国内源

    添加清华源 conda config add channels https mirrors tuna tsinghua edu cn anaconda pkgs free conda config add channels https mi
  • 延长OLED透明屏的使用寿命:关键因素与有效方法分享

    OLED透明屏作为一项创新的显示技术 具备透明度和高清晰度的特点 在各个领域得到了广泛应用 然而 为了确保OLED透明屏的持久性和稳定性 延长其使用寿命是至关重要的 根据最新的研究和数据报告 在这篇文章中 尼伽将深入探讨延长OLED透明屏使
  • 微信小程序实现音乐播放器(2)

    文章目录 前情提要 BackgroundAudioManager API wx setNavigationBarTitle 搭建静态资源服务器 小程序项目 app json app wxss pages music music json p
  • three.js常用几何体介绍以及自定义几何体

    一 自定义三角形几何体 核心代码 添加物体 创建几何体 for let i 0 i lt 50 i 每一个三角形 需要3个顶点 每个顶点需要3个值 const geometry new THREE BufferGeometry const