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常用几何体介绍以及自定义几何体 的相关文章

  • 如何恢复文本框数据

    我有一个小小的要求 我们已经恢复了之前清除的文本框数据 下面是我的 HTML 代码 table tr td td tr table
  • 在有限的上下文中运行 JS 代码

    我正在尝试奔跑trusted 隔离 上下文中的 JS 代码 基本上想出了这个方法 function limitedEval src context return function with this return eval src call
  • JavaScript 字符串中的脚本标签[重复]

    这个问题在这里已经有答案了 我遇到一个问题 即 JavaScript 中带引号的字符串内有结束脚本标记 并且它正在杀死脚本 我认为这不是预期的行为 可以在这里看到这样的示例 http jsbin com oqepe edit http js
  • jQuery:查找具有特定自定义属性的元素

    我只想找到具有特定自定义属性值的元素 例如 我想找一个div其具有属性data divNumber 6 var number 6 var myDiv data divNumber number 我尝试使用http api jquery co
  • 以下文档我无法创建 Vue.js 3 的实例

    The code https stackblitz com edit vue ttt file src main js https stackblitz com edit vue ttt file src main js 问题 我正在尝试在
  • 如何将 Ajax.BeginForm MVC 助手与 JSON 结果一起使用?

    我正在尝试使用 ASP NET MVC Ajax BeginForm 帮助程序 但不想在调用完成时使用现有的内容插入选项 相反 我想使用自定义 JavaScript 函数作为回调 这可行 但我想要的结果应该以 JSON 形式返回 不幸的是
  • 将时间戳转换为一个数组

    在应用程序脚本 谷歌表中运行 我从 API 获取时间戳并返回此结果 1 6370611672429312E18 1 63706107263277082E18 我执行此代码并且工作正常 但问题不在数组中 我每次都需要它在数组中 const t
  • EmberJS:对象作为查询参数来刷新模型

    我遵循了查询参数指南 http guides emberjs com v1 11 0 routing query params http guides emberjs com v1 11 0 routing query params 而且效
  • 检查用户设备的 GPS 是否开启

    我正在使用 jQuery Mobile 和 PHP 开发一个应用程序 我没有使用 Phonegap 或其他框架 我需要找到用户的geolocation 如果用户设备的 GPS 关闭 那么我无法获取位置 现在我需要查找用户设备的 GPS 是否
  • 使用javascript以编程方式触发iOS safari中的复制菜单?

    我正在尝试实现一种用户友好的方式 将一些文本从文本输入字段复制到 iOS Safari 上的剪贴板 我知道无法在这个平台上以编程方式完成此操作 但我希望能够尽可能地指导用户体验 在 iOS Safari 上 当用户手动突出显示某些文本时 会
  • AngularJS + jQuery 移动

    是否还有其他可能性来设计AngularJS以移动友好的方式应用程序CSS 我正在计划一个移动应用程序 并希望使用 AngularJS 进行逻辑和数据绑定 但我不想自己设计所有内容CSS The AngularJSFAQ说它使用jQuery
  • 从链接打开本地文件夹

    如何通过单击任何链接打开本地文件夹视图 我尝试了很多选择 例如 a href Open folder a or a Open folder a or a Open folder a 解决方案 启动可下载链接 以下内容适用于所有浏览器 但一如
  • ES6 模块范围

    我有代码 lib js var a a export var b b main js console log a a variable is not available in a global scope import b from lib
  • Svelte 条件元素类报告为语法错误

    我正在做一个if块每if 块的精简指南 https svelte technology guide if blocks 这看起来很简单 但 Svelte 认为这是一个语法错误 svelte plugin ParseError Unexpec
  • 了解 Document.createElement()

    我在用着GWT及其底层DOM能力 我基本上想要实现的是 Have a div包含一些文本的元素 其中一些文本将被包围span元素 span 元素可相互拖动并提供上下文菜单 New span元素可以由最终用户动态创建 它可能是这样的 在应用程
  • Firebase + Node.js:错误:找不到 XMLHttpRequest 兼容性库

    Firebase Node js On iOS 安装的 Node js npm 安装 firebase save 节点测试 js 其中 test js 是一个非常简单的连接到 Firebase 的脚本 var firebase requir
  • 当php脚本通过ajax运行时显示进度条

    我有一个通过 ajax 向服务器提交值的表单
  • React Redux - 在辅助函数中访问现有存储

    我试图在反应组件之外获取存储实例 存储状态 即在单独的辅助函数中 我有我的减速器 我的动作 我在最上面的组件中创建了一个商店 configStore js import createStore from redux import gener
  • 如何解决“消息端口在收到响应之前已关闭”的问题。在 JavaScript 中的 window.location.reload() 之后

    我遇到了 javascript 问题 从 chrome v73 0 3683 86 开始 每当我在 window location reload 函数之后运行 javascript 代码时 它总是给我错误 Unchecked runtime
  • 为什么 JavaScript 中是 [1,2] + [3,4] = "1,23,4" ?

    我想将一个数组的元素添加到另一个数组中 所以我尝试了以下方法 1 2 3 4 它的回应是 1 23 4 到底是怎么回事 The 操作员没有为数组定义 发生的事情是 JavaScript将数组转换为字符串并将它们连接起来 Update 由于这

随机推荐

  • 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