three.js(九):内置的路径合成几何体

路径合成几何体

    • TubeGeometry 管道
    • LatheGeometry 车削
    • ExtrudeGeometry 挤压

TubeGeometry 管道

  • TubeGeometry(path : Curve, tubularSegments : Integer, radius : Float, radialSegments : Integer, closed : Boolean)
    • path — Curve - 一个由基类Curve继承而来的3D路径。 Default is a quadratic bezier curve.
    • tubularSegments — Integer - 组成这一管道的分段数,默认值为64。
    • radius — Float - 管道的半径,默认值为1。
    • radialSegments — Integer - 管道横截面的分段数目,默认值为8。
    • closed — Boolean 管道的两端是否闭合,默认值为false。
class CustomSinCurve extends Curve<Vector3> {constructor() {super();}getPoint(t: number, optionalTarget: Vector3 = new Vector3()) {const tx = t;const ty = Math.cos(8 * Math.PI * t) / 8;const tz = Math.sin(8 * Math.PI * t) / 8;return optionalTarget.set(tx, ty, tz);}
}
const path = new CustomSinCurve();
const geometry = new TubeGeometry(path, 64, 0.05, 8);

在这里插入图片描述

LatheGeometry 车削

  • LatheGeometry(points : Array, segments : Integer, phiStart : Float, phiLength : Float)
    • points — 一个Vector2对象数组。每个点的X坐标必须大于0。
    • segments — 要生成的车削几何体圆周分段的数量,默认值是12。
    • phiStart — 以弧度表示的起始角度,默认值为0。
    • phiLength — 车削部分的弧度(0-2PI)范围,2PI将是一个完全闭合的、完整的车削几何体,小于2PI是部分的车削。默认值是2PI。
const points = [];
for (let i = 0; i < 1; i += 0.1) {const x = (Math.sin(i * Math.PI * 1.8 + 3) + 1) / 5 + 0.02;points.push(new Vector2(x, i));
}
const geometry = new LatheGeometry(points);

在这里插入图片描述

ExtrudeGeometry 挤压

  • ExtrudeGeometry(shapes : Array, options : Object)

    • shapes — 形状或者一个包含形状的数组。
    • options — 一个包含有下列参数的对象:
      • steps — int,用于沿着挤出样条的深度细分的点的数量,默认值为1。
      • depth — float,挤出的形状的深度,默认值为1。
      • bevelEnabled — bool,对挤出的形状应用是否斜角,默认值为true。
      • bevelThickness — float,设置原始形状上斜角的厚度。默认值为0.2。
      • bevelSize — float。斜角与原始形状轮廓之间的延伸距离,默认值为bevelThickness-0.1。
      • bevelOffset — float. Distance from the shape outline that the bevel starts. Default is 0.
      • bevelSegments — int。斜角的分段层数,默认值为3。
      • extrudePath — THREE.Curve对象。一条沿着被挤出形状的三维样条线。Bevels not supported for path extrusion.
      • UVGenerator — Object。提供了UV生成器函数的对象。
  • 该对象可以将一个二维形状挤成一个三维几何体。

  • 当使用这个几何体创建Mesh的时候,如果希望分别对它的表面和它挤出的侧面使用单独的材质,你以使用一个材质数组。 第一个材质将用于其表面;第二个材质则将用于其挤压出的侧面。

const shape = new Shape();
shape.moveTo(0, 0);
shape.lineTo(0, 1);
shape.lineTo(1, 1);
shape.lineTo(1, 0);
shape.lineTo(0, 0);const extrudeSettings = {steps: 1,depth: 1,bevelEnabled: true,bevelThickness: 0.2,bevelSize: 0.1,bevelOffset: 0,bevelSegments: 1,
};const geometry = new ExtrudeGeometry(shape, extrudeSettings);

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/113994.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 查看 、设置缓冲池 buffer_pool

Mysql 存储引擎 MyIsam 和 Innodb 引擎 myIsam 存储引擎&#xff1a; 只缓存索引&#xff0c;不缓存数据&#xff0c;对应的键缓存参数为 key_buffer_size show variables like ‘key_buffer_size’; set global key_buffer_sizexxxx; 或者 my.ini my.cnf [server] key_buffer…

Mac下Docker Desktop安装命令行工具、开启本地远程访问

Mac系统下&#xff0c;为了方便在terminal和idea里使用docker&#xff0c;需要安装docker命令行工具&#xff0c;和开启Docker Desktop本地远程访问。 具体方法是在设置-高级下&#xff0c; 1.将勾选的User调整为System&#xff0c;这样不用手动配置PATH即可使用docker命令 …

2023第七届蓝帽杯 初赛 web LovePHP

LovePHP 直接给了源码。 network查看到&#xff0c;PHP版本是7.4.33 题目要求我们GET一个my_secret.flag参数&#xff0c;根据PHP字符串解析特性&#xff0c;PHP需要将所有参数转换为有效的变量名&#xff0c;因此在解析查询字符串时&#xff0c;它会做两件事&#xff1a; 删…

飞腾PSPA可信启动--1 非对称加密

最近计划在梳理下飞腾安全平台架构PSPA&#xff0c;就先从可信启动开始吧。有一些基础的密码学知识&#xff0c;各位在研究可信固件的时候可能会有一些不解&#xff0c;为了便于大家理解&#xff0c;编了几个小故事&#xff0c;希望能够帮助大家理清其中的各种关系。目前可信启…

【人工智能】—_逻辑回归分类、对数几率、决策边界、似然估计、梯度下降

文章目录 逻辑回归分类Logistic Regression ClassificationLogistic Regression: Log OddsLogistic Regression: Decision BoundaryLikelihood under the Logistic ModelTraining the Logistic ModelGradient Descent 逻辑回归分类 考虑二分类问题&#xff0c;其中每个样本由一…

【AI辅助办公】PDF转PPT,移除水印

PDF转PPT 将PDF上传链接即可转换成PPT。​​​​​​ ​​​​​​​ https://www.camscanner.com/pdftoppthttps://www.camscanner.com/pdftoppt​​​​​​​​​​​​​​移除水印 第一步&#xff1a;打开视图-宏 第二步&#xff1a;输入宏名&#xff08;可以是人以文字…

「快学Docker」Docker容器安全性探析

「快学Docker」Docker容器安全性探析 引言容器安全性威胁Docker容器安全性目录容器镜像安全性主机与容器隔离访问控制运行时监控与防御网络安全性Docker容器安全性最佳实践 总结 引言 在当今快速发展的软件开发和部署领域&#xff0c;容器化技术已经成为一种不可或缺的工具。然…

【App端】uni-app使用百度地图api和echarts省市地图下钻

目录 前言方案一&#xff1a;echarts百度地图获取百度地图AK安装echarts和引入百度地图api完整使用代码 方案二&#xff1a;echarts地图和柱状图变形动画实现思路完整使用代码 方案三&#xff1a;中国地图和各省市地图下钻实现思路完整使用代码 前言 近期的app项目中想加一个功…

中小企业想出圈,媒介盒子教你9个营销技巧

无论是企业还是品牌营销人员&#xff0c;要想脱颖而出&#xff0c;必须从品牌意识、品牌思维、品牌策略和品牌战术多个维度做好品牌运营。盒子总结的9个品牌营销新趋势&#xff0c;拿走不谢&#xff01;01 和名导明星合作企业品牌明星化能树立较高的知名度和美誉度&#xff0c;…

Rabbitmq消息积压问题如何解决以及如何进行限流

一、增加处理能力 优化系统架构、增加服务器资源、采用负载均衡等手段&#xff0c;以提高系统的处理能力和并发处理能力。通过增加服务器数量或者优化代码&#xff0c;确保系统能够及时处理所有的消息。 二、异步处理 将消息的处理过程设计为异步执行&#xff0c;即接收到消息…

OpenGL-入门-BMP像素图glReadPixels(2)保存显示的界面

用glReadPixels保存显示的界面 #include <GL/glut.h> #include <iostream> #include <fstream> #include <vector>// Save pixel data as BMP image void saveBMP(const std::string& filename, int width, int height, const std::vector<GLu…

多项式求逆

已知 F F F&#xff0c;求 G G G 考虑倍增 F ( x ) ∗ H ( x ) ≡ 1 ( m o d x n / 2 ) F(x) * H(x) \equiv 1 \pmod{x^{n/2}} F(x)∗H(x)≡1(modxn/2) F ( x ) ∗ G ( x ) ≡ 1 ( m o d x n / 2 ) F(x) * G(x) \equiv 1 \pmod{x^{n/2}} F(x)∗G(x)≡1(modxn/2) 假设 H H…

Shell编程之流程控制

目录 if判断 case语句 for循环 while循环 if判断 语法&#xff1a; if [ 条件判断表达式 ] then 程序 elif [ 条件判断表达式 ] then 程序 else 程序 fi 注意&#xff1a; [ 条件判断表达式 ]&#xff0c;中括号和条件判断表达式之间必须有空格。if&#xff0c;elif…

自然语言处理(NLP)是什么?

NLP(自然语言处理) 和 Phoebe Liu 的简介 您有没有和聊天机器人互动过&#xff1f;或者您是否向虚拟助手&#xff0c;例如 Siri、Alexa 或您车上的车载娱乐系统发出过某些请求&#xff1f;您使用过在线翻译吗&#xff1f;我们大多数人都曾与这些人工智能 (AI) 互动过&#xff…

某人事系统架构搭建设计记录

首发博客地址 https://blog.zysicyj.top/ 先大致列一下基础情况 架构必须是微服务 场景上涉及大量查询操作&#xff0c;分析操作 存在临时大量写入的场景 并发并不高 对高可用要求较高&#xff0c;不能挂掉 对安全要求高 要能过等保测试等三方测试 使用人数并不多&#xff0c;十…

git rebase和merge区别

一、概述 merge和rebase 标题上的两个命令&#xff1a;merge和rebase都是用来合并分支的。 这里不解释rebase命令&#xff0c;以及两个命令的原理&#xff0c;详细解释参考这里。 下面的内容主要说的是两者在实际操作中的区别。 1.1 什么是分支 分支就是便于多人在同一项目…

基于流计算 Oceanus(Flink) CDC 做好数据集成场景

由于第一次做实时&#xff0c;所以踩坑比较多&#xff0c;见谅(测试环境用的flink),小公司没有用到hadoop组件 一、踩坑记录 1:本地代码的flink版本是flink1.15.4&#xff0c;生产环境是flink1.16.1&#xff0c;在使用侧输出流时报错&#xff0c;需要使用以下写法,需要使用Si…

如何为你的公司选择正确的AIGC解决方案?

如何为你的公司选择正确的AIGC解决方案&#xff1f; 摘要引言词汇解释&#xff08;详细版本&#xff09;详细介绍1. 确定需求2. 考虑技术能力3. 评估可行性4. 比较不同供应商 代码快及其注释注意事项知识总结 博主 默语带您 Go to New World. ✍ 个人主页—— 默语 的博客&…

适配ADRC自抗扰控制算法的MFP450-ADRC 套件焕新而来

关注 FMT 开源自驾仪的开发者可能知道&#xff0c;早在 2018 年 7 月 FMT开源自驾仪的早期版本就已经实现了 ADRC 算法。 经过几年的发展&#xff0c;FMT 在自抗扰控制算法的适配上做了进一步的优化&#xff0c;为了方便科研工作者和开发者快速上手&#xff0c;我们针对搭载 F…

计算机毕设 基于机器学习的餐厅销量预测 -大数据 python

文章目录 0 前言餐厅销量预测模型简介2.ARIMA模型介绍2.1自回归模型AR2.2移动平均模型MA2.3自回归移动平均模型ARMA 三、模型识别四、模型检验4.1半稳性检验(1)用途(1)什么是平稳序列?(2)检验平稳性 ◆白噪声检验(纯随机性检验)(1)用途(1)什么是纯随机序列?(2)检验纯随机性 五…