three完全开源扩展案例01-三角形渐变

在这里插入图片描述

演示地址

import * as THREE from 'three'
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js'const box = document.getElementById('box')const scene = new THREE.Scene()const camera = new THREE.PerspectiveCamera(75, box.clientWidth / box.clientHeight, 0.1, 1000)camera.position.set(0, 0, 500)const renderer = new THREE.WebGLRenderer()renderer.setSize(box.clientWidth, box.clientHeight)new OrbitControls(camera, renderer.domElement)window.onresize = () => {renderer.setSize(box.clientWidth, box.clientHeight)camera.aspect = box.clientWidth / box.clientHeightcamera.updateProjectionMatrix()}box.appendChild(renderer.domElement)initObject();
function initObject() {let geometry = new THREE.BufferGeometry(); // 使用BufferGeometrylet vertices = new Float32Array([0, 0, 0, // 顶点p10, 200, 0, // 顶点p2200, 0, 0 // 顶点p3]);geometry.setAttribute('position', new THREE.BufferAttribute(vertices, 3));let colors = [1.0, 0.0, 0.0, // 颜色1 (红色)0.0, 1.0, 0.0, // 颜色2 (绿色)0.0, 0.0, 1.0  // 颜色3 (蓝色)];// 创建顶点颜色属性let colorAttribute = new THREE.BufferAttribute(new Float32Array(colors), 3);geometry.setAttribute('color', colorAttribute);// 定义索引,创建三角形面let indices = [0, 1, 2 // 索引0, 1, 2 表示顶点数组中的p1, p2, p3];let indexAttribute = new THREE.BufferAttribute(new Uint16Array(indices), 1);geometry.setIndex(indexAttribute);let material = new THREE.MeshBasicMaterial({vertexColors: true,side: THREE.DoubleSide,wireframe: false});let obj = new THREE.Mesh(geometry, material);scene.add(obj);
}
function animate() {requestAnimationFrame(animate)renderer.render(scene, camera)}animate()

技术交流群
在这里插入图片描述

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

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

相关文章

SQL Server镜像与日志:数据保护的双重保障

SQL Server镜像与日志:数据保护的双重保障 在SQL Server的高可用性解决方案中,数据库镜像和日志传送是两种重要的技术,它们都旨在提供数据的安全性和业务连续性。然而,这两种技术在实现方式和使用场景上有着明显的区别。本文将深…

时间序列分析方法汇总对比及优缺点和适用情况(上)--1. 移动平均 2. 指数平滑 3. 自回归模型 4. 移动平均模型 5. 自回归移动平均模型

目录 1. 移动平均(Moving Average) 2. 指数平滑(Exponential Smoothing) 3. 自回归模型(Autoregressive Model, AR) 4. 移动平均模型(Moving Average Model, MA) 5. 自回归移动…

杜比全景声——空间音频技术

什么是杜比?是否是标清、高清、超清之上的更清晰的格式?杜比全景声 和传统多声道立体声的差别?杜比全景声音频的渲染方式?车载平台上杜比技术的应用? 杜比技术的起源 杜比实验室(Dolby Laboratories&…

大数据基础:Hadoop之MapReduce重点架构原理

文章目录 Hadoop之MapReduce重点架构原理 一、MapReduce概念 二、MapReduce 编程思想 2.1、Map阶段 2.2、Reduce阶段 三、MapReduce处理数据流程 四、MapReduce Shuffle 五、MapReduce注意点 六、MapReduce的三次排序 Hadoop之MapReduce重点架构原理 一、MapReduce概…

ORACLE重装之后恢复数据库,相当于sqlserver的附加数据库

在开发机器上经常会遇到重装系统的问题,重装之前如果ORACLE没有及时备份的话重装之后就纠结了,数据还原很头疼。 只能找到一些ORACLE安装与重装系统前目录相同的解决办法,目录不同就没招了。 我用的是oracle11G。老版的应该相似。 经过我的尝试,找到了几个关键点,现在分…

讲讲 JVM 的内存结构(附上Demo讲解)

讲讲 JVM 的内存结构 什么是 JVM 内存结构?线程私有程序计数器​虚拟机栈本地方法栈 线程共享堆​方法区​注意永久代​元空间​运行时常量池​直接内存​ 代码详解 什么是 JVM 内存结构? JVM内存结构分为5大区域,程序计数器、虚拟机栈、本地…

C# 泛型

泛型 泛型不是语法糖,而是由框架提供的一种便捷语法,首次出现在.NET 2.0中。 1. 泛型定义 泛型:是一种程序特性,定义时不对类型做出明确的规定,使用时规定且不能改变。一般应用:泛型集合、泛型方法、泛型…

机器学习——LR、‌GBDT、‌SVM、‌CNN、‌DNN、‌RNN、‌Word2Vec等模型的原理和应用

LR(逻辑回归) 原理: 逻辑回归模型(Logistic Regression, LR)是一种广泛应用于分类问题的统计方法,尤其适用于二分类问题。其核心思想是通过Sigmoid函数将线性回归模型的输出映射到(0,1)区间,从…

【AI前沿】深度学习:神经网络基础

文章目录 📑引言一、神经元和感知器1.1 神经元的基本概念1.2 感知器模型 二、多层感知器(MLP)2.1 MLP的基本结构2.2 激活函数的重要性2.3 激活函数2.4 激活函数的选择 三、小结 📑引言 深度学习是现代人工智能的核心技术之一&…

kotlin Flow 学习指南 (三)最终篇

目录 前言Flow生命周期StateFlow 替代LiveDataSharedFlow其他常见应用场景处理复杂、耗时逻辑存在依赖关系的接口请求组合多个接口的数据 Flow使用注意事项总结 前言 前面两篇文章,介绍了Flow是什么,如何使用,以及相关的操作符进阶&#xff…

如何挑选适合的需求池管理系统?10款优质工具分享

本文将分享10款优质需求池管理工具:PingCode、Worktile、Teambition、Epicor Kinetic、TAPD、SAP IBP、Logility、RELEX Solutions、JIRA、明道云。 在管理项目和产品需求时,正确的工具能够大幅提高效率与透明度。如何从众多需求池工具中选择最适合团队的…

第一节 SHELL脚本中的常用命令(2)

二,网络管理命令nmcli 1.查看网卡 # 或者先用ip addr或ip a等查看网卡 ip a s 网卡名 ifconfig 网卡名 nmcil device show 网卡名 nmcil device status nmcil connection show 网卡名2.设置网卡 a)当网卡未被设置过时 设置dncp网络工作模式 nmcil connection add con-name…

Rust编程-编写自动化测试

编写单元测试步骤: 1. 准备所需的数据 2. 调用需要测试的代码 3. 断言运行结果与我们所期望的一致 Rust的test元数据: #[cfg(test)]:是一个属性宏(attribute macro)。用于控制特定的代码段仅在测试环境中编译…

自定义类型:联合体

像结构体一样,联合体也是由一个或者多个成员组成,这些成员可以是不同的类型。 联合体类型的声明 编译器只为最⼤的成员分配⾜够的内存空间。联合体的特点是所有成员共⽤同⼀块内存空间。所以联合体也叫:共⽤体。 输出结果: 联合体…

size_t 数据类型的好处

什么是size_t size_t 类型在不同的平台上对应不同的底层整数类型,具体取决于平台的指针大小。size_t 主要用于表示大小和长度,如数组的元素数量、缓冲区的大小等,它的设计目的是为了匹配指针的大小,以避免类型不匹配引起的错误。…

代码随想录算法训练营DAY58|101.孤岛的总面积、102.沉没孤岛、103. 水流问题、104.建造最大岛屿

忙。。。写了好久。。。。慢慢补吧。 101.孤岛的总面积 先把周边的岛屿变成水dfs def dfs(x, y, graph, s):if x<0 or x>len(graph) or y<0 or y>len(graph[0]) or graph[x][y]0:return sgraph[x][y]0s1s dfs(x1, y, graph, s)s dfs(x-1, y, graph, s)s dfs(…

【爬虫入门知识讲解:xpath】

3.3、xpath xpath在Python的爬虫学习中&#xff0c;起着举足轻重的地位&#xff0c;对比正则表达式 re两者可以完成同样的工作&#xff0c;实现的功能也差不多&#xff0c;但xpath明显比re具有优势&#xff0c;在网页分析上使re退居二线。 xpath 全称为XML Path Language 一种…

软考高级第四版备考--第16天(规划沟通管理)Plan Communication Management

定义&#xff1a;基于每个干系人或干系人群体的信息需求、可用的组织资产以及具体的项目的需求&#xff0c;为项目沟通活动制定恰当的方法和计划的过程。 作用&#xff1a; 及时向干系人提供相关信息&#xff1b;引导干系人有效参与项目&#xff1b;编制书面沟通计划&#xf…

【基于R语言群体遗传学】-16-中性检验Tajima‘s D及连锁不平衡 linkage disequilibrium (LD)

Tajimas D Test 已经开发了几种中性检验&#xff0c;用于识别模型假设的潜在偏差。在这里&#xff0c;我们将说明一种有影响力的中性检验&#xff0c;即Tajimas D&#xff08;Tajima 1989&#xff09;。Tajimas D通过比较数据集中的两个&#x1d703; 4N&#x1d707;估计值来…

vue项目中常见的一些preset及其关系

Babel的作用 Babel主要用途是用来做js代码转换的&#xff0c;将最新的js语法或者api转换成低版本浏览器可兼容执行的代码。 语法兼容是指一些浏览器新特性增加的js写法&#xff0c;例如箭头函数 ()>{}&#xff1b;低版本的浏览器无法识别这些&#xff0c;会导致一些语法解…