WEB 3D技术 three.js 顶点缩放

news2024/11/18 23:26:36

本文 我们来说 顶点缩放

我们官网搜索 BufferGeometry
在这里插入图片描述
下面有一个 scale 函数
在这里插入图片描述
例如 我们先将代码写成这样
上面图片和资源文件 大家需要自己去加一下

import './style.css'
import * as THREE from "three";
import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.js";
import { RGBELoader } from "three/examples/jsm/loaders/RGBELoader.js";
//创建相机
const camera = new THREE.PerspectiveCamera(
    45, //视角 视角越大  能看到的范围就越大
    window.innerWidth / window.innerHeight,//相机的宽高比  一般和画布一样大最好
    0.1,
    1000
);
const scene = new THREE.Scene();
let uvTexture = new THREE.TextureLoader().load("/textUv.jpg");

const geometry = new THREE.BufferGeometry();
// 创建顶点数据
const vertices = new Float32Array([
    -1.0,-1.0 ,0.0,
    1.0 ,-1.0, 0.0,
    1.0 ,1.0 ,0.0,
    -1.0 ,1.0, 0.0
])
geometry.setAttribute("position", new THREE.BufferAttribute(vertices, 3));
const indices = new Uint16Array([0 ,1 ,2, 0, 3, 2]);
const material = new THREE.MeshBasicMaterial({
    map: uvTexture,
    side: THREE.DoubleSide
})
const uv = new Float32Array([
    0, 0, 1, 0, 1, 1, 0, 1
])
geometry.setAttribute("uv", new THREE.BufferAttribute(uv, 2));
const normals = new Float32Array([
    0, 0, 1,
    0, 0, 1,
    0, 0, 1,
    0, 0, 1
])
geometry.setAttribute("normal", new THREE.BufferAttribute(normals, 3));
geometry.setIndex(new THREE.BufferAttribute(indices, 1));
console.log(geometry);
const cube = new THREE.Mesh(geometry, material);
scene.add(cube)

//c创建一个canvas容器  并追加到 body上
const renderer = new THREE.WebGLRenderer(0);
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);

//设置相机位置   这里 我们设置Z轴  大家可以试试  S Y 和 Z  都是可以的
camera.position.z = 5;
//设置相机默认看向哪里   三个 0  代表 默认看向原点
camera.lookAt(0, 0, 0);
//将内容渲染到元素上
renderer.render(scene, camera);
const controls = new OrbitControls(camera, renderer.domElement);

let rgbeloader = new RGBELoader();
rgbeloader.load("/xhdr/Alex_Hart-Snow_Pano_2k.hdr",(texture) =>{
    scene.background = texture;
    texture.mapping = THREE.EquirectangularReflectionMapping;
    material.envMap = texture;
})

function animate() {
    controls.update();
    requestAnimationFrame(animate);
    /*cube.rotation.x += 0.01;
    cube.rotation.y += 0.01;*/
    renderer.render(scene, camera);
}
animate();

在这里插入图片描述
这里 我们将它 x y z三个轴 都缩放三倍
在这里插入图片描述
运行代码 最直观的就是 几何体放大了很多
在这里插入图片描述
打开控制台 position 的数值也会随之改变 帮你算出现在的值
在这里插入图片描述
顶点操作 最大的好处还是 如果几何体数据后端返回且有偏差 就可以通过顶点操作修整
但是坏处就是 没有痕迹 我们无法通过几何体对象 看出它做了哪些操作

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

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

相关文章

利用C#实现贪吃蛇

说明 本文根据B站up主唐老狮的课程所学所记 目录 说明本文根据B站up主唐老狮的课程所学所记 UML面向对象七大原则总体实现目标单一职责原则(SRP,Single Responsibility Principle)开闭原则(OCP,Open-Closed Principle…

UseContentHash选项能否在打包AssetBundle时计算可靠的Hash

1)UseContentHash选项能否在打包AssetBundle时计算可靠的Hash 2)如何清理Native Reserved部分的内存 3)Addressables资源完整性校验 4)通过Image.color和CanvasRenderer.SetColor修改UI组件颜色的区别 这是第368篇UWA技术知识分享…

如何理解面向对象的OO设计原则和设计模式?

一、如何理解面向对象的编程原则? 单一职责原则(Single Responsibility Principle) 一个类,应该由一组相关性很高的数据和方法组成。一个类应该仅有一个引起它变化的原因。单一职责最难界定的就是关于“职责”的定义,往往需要丰富的经验和对业务的认知程度,这也更加容易引…

H5 - - - - - 获取图片exif相关信息

1. EXIF是什么 【可交换图像文件格式】:(英语:Exchangeable image file format,官方简称Exif),是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。 2. EXIF 相关标识 { ApertureValu…

python封装接口自动化测试套件

在Python中,我们可以使用requests库来实现接口自动化测试,并使用unittest或pytest等测试框架来组织和运行测试套件。以下是一个基本的接口自动化测试套件封装示例: 首先,我们需要安装所需的库: pip install requests …

JSUDO|加速度与阿里云合作云产品

电讯:深圳市加速度软件开发有限公司【加速度jsudo】,与阿里云计算有限公司(简称“阿里云”)达成合作,双方将在电商、企业管理等应用软件领域就云产品和应用软件更深层次合作。 加速度软件长期以来,一直与阿…

群太多,有什么办法可以定时、批量、标签分类群发的吗?

你或许会遇到微信群组过多而导致管理困难等问题吗?对于如何高效地管理众多微信群组,实现分类管理同样具有不可忽视的重要性。 实际上,对此问题小编收到了部分朋友的疑问:“既然可以为微信好友添加标签,那为何不能为微…

如何查找iPhone中所有的应用程序

​ ​ Apple 的 App Store 共有约 200 万个适用于 iPhone 和 iPad 的应用程序。如果您像我们一样,您的 iOS 或 iPadOS 设备上可能有数十个应用程序,但没有机会将它们全部整理好。您很容易忘记主屏幕上应用程序图标的位置。 幸运的是,iPhone…

运用AI翻译漫画(二)

构建代码 构建这个PC桌面应用,我们需要几个步骤: 在得到第一次的显示结果后,经过测试,有很大可能会根据结果再对界面进行调整,实际上也是一个局部的软件工程中的迭代开发。 界面设计 启动Visual Studio 2017, 创建…

VUE部署到IIS中报404错误解决方案-配置URL重写

VUE部署到IIS中报404错误解决方案-配置URL重写 第一步,Windows服务器中开启IIS 可承载的web核心 1、添加角色和功能中安装iis 可承载web核心 第二步,下载url重写工具 官方网站下载地址: https://www.iis.net/downloads/microsoft/url-rewrit…

ASUS华硕ROG幻14笔记本2023款G14 GA402XV原装出厂Win11系统

华硕幻14锐龙R9-7940HS笔记本电脑原厂Windows11.22H2系统 适用型号:GA402XU、GA402XV、GA402XI、GA402XY、GA402XZ 链接:https://pan.baidu.com/s/1sMva1u7D8uFoGnm2Hjrdug?pwdho91 提取码:ho91 原厂系统自带所有驱动、出厂主题壁纸、…

java: 写入数据到HBase

一、添加依赖 <dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>2.6.0</version></dependency><dependency><groupId>org.apache.hbase</groupId><art…

css 编写圆角矩形只有左侧一半的样式

实现该样式&#xff1a;尺寸大小可自由调整修改 <div class"abc"></div>.abc{width: 50px;height: 300px;border: 1px solid red;border-right: none;border-top-left-radius: 10px;border-bottom-left-radius: 10px;}

决策树--分类决策树

1、介绍 ① 定义 分类决策树通过树形结构来模拟决策过程&#xff0c;决策树由结点和有向边组成。结点有两种类型&#xff1a;内部结 点和叶结点。内部结点表示一个特征或属性&#xff0c;叶子节点表示一个类。 ② 生成过程 用决策树分类&#xff0c;从根结点开始&#xff…

智算中心基石-AI算力池化

以智算中心为代表的算力基础设施能够有效促进AI产业化和产业AI化&#xff0c;是支撑数字经济发展的重要基础底座。为了让AI 真正地赋能到千行百业&#xff0c;并推动产业数字化转型发展&#xff0c;智算中心要具备对外提供高性价比、普惠、安全算力资源的能力&#xff0c;使AI算…

CSIG青年科学家会议圆满举行,合合信息打造智能文档处理融合研究新范式

近期&#xff0c;第十九届中国图象图形学学会青年科学家会议&#xff08;简称“会议”&#xff09;在广州召开。会议由中国图象图形学学会&#xff08;CSIG&#xff09;主办&#xff0c;琶洲实验室、华南理工大学、中山大学、中国图象图形学学会青年工作委员会承办。会议面向国…

重磅上新!赛宁人员能力验证评估系统,高效解决人才培养和能力认证难

网络安全人员是安全防护的核心与关键&#xff0c;其素质与能力对关键信息基础设施网络安全防护至关重要。在金融、能源、电子政务等关键行业的网络信息安全规范或指南中&#xff0c;均对网络安全从业人员的资质、能力、培训作出相应规定。《信息安全技术 关键信息基础设施安全保…

wblogic中间件配置数据源

配置数据源 1.服务-数据源-配置-新建 2.单机选一般数据源 3.选择源名称、jndi名称、数据库类型 4.选择驱动 5.下一步 6.输入连接串信息 参考&#xff1a; 格式二&#xff1a;jdbc:oracle:thin:<host>:<port>:<SID> 数据库名称配置的sid 7.测试配置&#xff…

java基础知识点系列——第一个程序(二)

java基础知识点系列——第一个程序&#xff08;二&#xff09; 1、常用的DOS命令 打开命令提示符窗口 按下winR输入cmd按下回车键 常用命令 2、path环境变量的配置 为什么配置path环境变量 开发java程序&#xff0c;需要使用JDK提供的开发工具&#xff0c;而这些开发工具…

Java程序设计——GUI设计

一、目的 通过用户图形界面设计&#xff0c;掌握JavaSwing开发的基本方法。 二、实验内容与设计思想 实验内容&#xff1a; 课本验证实验&#xff1a; Example10_6 图 1 Example10_7 图 2 图 3 Example10_15 图 4 设计思想&#xff1a; ①学生信息管理系统&#xff1a…