当前位置: 首页 > news >正文

31. 三维向量Vector3与模型位置

点模型Points、线模型Line、网格网格模型Mesh等模型对象的父类都是Object3D (opens new window),如果想对这些模型进行旋转、缩放、平移等操作,如何实现,可以查询Threejs文档Object3D (opens new window)对相关属性和方法的介绍。

三维向量Vector3

三维向量Vector3有xyz三个分量,threejs中会用三维向量Vector3表示很多种数据,本节课提到的比较简单,就是位置.position和缩放.scale属性。

查看three.js文档你可以知道Vector3对象具有属性.x.y.zVector3对象还具有.set()等方法。

//new THREE.Vector3()实例化一个三维向量对象
const v3 = new THREE.Vector3(0,0,0);
console.log('v3', v3);
v3.set(10,0,0);//set方法设置向量的值
v3.x = 100;//访问x、y或z属性改变某个分量的值

位置属性.position

// 位置属性.position使用threejs三维向量对象Vector3表示的
console.log('模型位置属性.position的值', mesh.position);

模型位置.position属性用一个三维向量表示,那意味着,以后你想改变位置属性,就应该查询文档Vector3。

这里之所以强调这一点,课程目的不单单是给你介绍具体的知识点,也是在引导你学会查文档,降低记忆压力。

改变位置属性

通过模型位置属性.position可以设置模型在场景Scene中的位置。模型位置.position的默认值是THREE.Vector3(0.0,0.0,0.0),表示坐标原点。

设置网格模型y坐标

mesh.position.y = 80;

设置模型xyz坐标

mesh.position.set(80,2,10);

平移

执行.translateX().translateY()等方法本质上改变的都是模型的位置属性.position

网格模型沿着x轴正方向平移100,可以多次执行该语句,每次执行都是相对上一次的位置进行平移变换。

// 等价于mesh.position = mesh.position + 100;
mesh.translateX(100);//沿着x轴正方向平移距离100

沿着Z轴负方向平移距离50。

mesh.translateZ(-50);

沿着自定义的方向移动。

//向量Vector3对象表示方向
const axis = new THREE.Vector3(1, 1, 1);
axis.normalize(); //向量归一化
//沿着axis轴表示方向平移100
mesh.translateOnAxis(axis, 100);

缩放

属性.scale表示模型对象的xyz三个方向上的缩放比例,.scale的属性值是一个三维向量对象Vector3,默认值是THREE.Vector3(1.0,1.0,1.0)

x轴方向放大2倍

mesh.scale.x = 2.0;

网格模型xyz方向分别缩放0.5,1.5,2倍

mesh.scale.set(0.5, 1.5, 2)

相关文章:

31. 三维向量Vector3与模型位置

点模型Points、线模型Line、网格网格模型Mesh等模型对象的父类都是Object3D (opens new window),如果想对这些模型进行旋转、缩放、平移等操作,如何实现,可以查询Threejs文档Object3D (opens new window)对相关属性和方法的介绍。 三维向量Ve…...

C# Action和delegate区别及示例代码

Action和delegate类似但没有返回值 Action和delegate在C#编程语言中有明显的区别,主要体现在它们的定义、用途和特性上。 1. 定义 Delegate:Delegate是C#中用于定义方法签名的类型,它允许将方法作为参数传递,或者将方法赋值给变…...

深度优先搜索: 探索图结构的括号化旅程

深度优先搜索: 探索图结构的括号化旅程 图的括号化结构示例图深度优先搜索的伪代码C语言实现解释运行结果总结在解决图相关问题时,深度优先搜索(DFS)是一种非常有用的算法。DFS 通过递归或使用栈的方式遍历图的节点,尽可能深地搜索每一个分支,然后回溯以搜索其他未访问的节…...

LINUX网络编程:传输层

目录 1.端口号 1.1知名端口号 1.2注意 2.UDP协议 2.1UDP报头的格式 2.2UDP的特点 2.3UDP的缓冲区 1.端口号 端口号的作用标识一个网络中主机的一个进程。 网络之间通信无非就是,发送端和接受端进程之间的通信,所以通过ip地址找到目标主机之后&am…...

PyTorch框架

PyTorch是一个开源的深度学习框架,由Facebook AI Research(FAIR)团队开发,自2017年发布以来,凭借其出色的灵活性、易用性和强大的功能,在深度学习和机器学习领域得到了广泛的应用和认可。以下是对PyTorch框…...

分布式系统实战经验

分布式系统是现代软件架构的核心部分,它通过多个计算节点协同工作来处理大规模数据和请求,提供高可用性、可扩展性和容错能力。在实际开发和运维中,构建分布式系统需要考虑多方面的挑战。以下是一些在分布式系统中的实战经验: 1.…...

软考(中级-软件设计师)(0919)

软考 一、软件设计师-历年考试考点分布情况-上午-计算机与软件工程知识 知识点分数说明比例软件工程基础知识11开发模型、设计原则、测试方法、质量特性、CMM、Pert图、风险管理14.67%面向对象12面向对象基本概念、面向对象分析与设计、UML、常见算法16.00%数据结构与算法10…...

WhaleStudio 与飞腾 S5000C 处理器完成产品兼容测试!

中秋佳节后喜讯传来!经过飞腾信息技术有限公司和北京白鲸开源科技有限公司的联合严格测试,白鲸开源 WhaleStudio 套件 V2.6 版本已在飞腾信息技术有限公司的腾云 S5000C 处理器平台上成功安装并稳定运行。 这标志着白鲸开源商业与飞腾的合作进入了一个新…...

【Arduino】Arduino使用USB-TTL无法下载程序问题

问题描述 自己绘制了一套基于Arduino MEGA的电路,没有在板子上面绘制CH340的标准下载电路,只保留了UART0的插针用于调试和下载程序。 使用ISP烧录完bootloader后,发现无法使用USB-TTL工具烧录程序 问题解决过程 在网上搜索了相关资料&…...

使用源代码编译R包的过程

R包的安装方式可以归纳为 源代码安装 和 二进制文件安装 两类: 源代码安装 是指从包的源代码进行编译安装。包括:① 通过CRAN安装源代码版本的包(如果没有二进制版本,或者指定了安装源代码)。② 从GitHub、Bioconducto…...

基于JavaWeb开发的java springboot+mybatis电影售票网站管理系统前台+后台设计和实现

基于JavaWeb开发的java springbootmybatis电影售票网站管理系统前台后台设计和实现 🍅 作者主页 网顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获…...

【论文阅读】Face2Diffusion for Fast and Editable Face Personalization

code:mapooon/Face2Diffusion: [CVPR 2024] Face2Diffusion for Fast and Editable Face Personalization https://arxiv.org/abs/2403.05094 (github.com) 论文 介绍 目标:向 T2I 模型不知道的图像中插入特定概念(例如某人的脸&#xff…...

金钥匙系列:Kubernetes (K8s) 服务集群技术栈学习路线

维护Kubernetes (K8s) 服务集群是一个复杂且多层次的技术任务,涉及容器化技术、集群管理、网络、安全、监控等多个领域。为了成为一名优秀的K8s集群维护工程师,技术栈需要广泛且深入。本文将为你详细介绍从零开始到深入掌握K8s集群维护的职业技术栈学习路…...

centos远程桌面连接windows

CentOS是一款广泛使用的Linux发行版,特别是在服务器领域。很多企业和个人用户会选择远程连接到CentOS进行操作和维护。虽然CentOS自带了一些远程桌面解决方案,但它们在使用上存在一些局限性。接下来,我将介绍如何实现CentOS的远程桌面连接&am…...

Android 系统下:普通应用无缝安装,Launcher 应用安装遭遇罕见障碍解析

目录 一、场景 1.1 错误分析 1.2 解决方法尝试 1.2.1 检查应用的安装位置 1.2.2 使用ADB安装 1.2.3 检查APK的签名 1.2.4 检查可用的内部存储空间 1.2.5 将应用程序安装到设备的内部存储空间 1.2.6 重置设备(谨慎使用) 1.2.7 获取Root权限&…...

VMware vCenter Server 8.0U3b 发布下载,新增功能概览

VMware vCenter Server 8.0U3b 发布下载,新增功能概览 Server Management Software | vCenter 请访问原文链接:https://sysin.org/blog/vmware-vcenter-8-u3/,查看最新版。原创作品,转载请保留出处。 作者主页:sysi…...

Unity 百度AI实现无绿幕拍照抠像功能(详解版)

目录 一、前言 1.抠像效果 2.去哪找百度ai抠图 3.基础流程跳过 二、获取AccessToken 1.什么是Token 2.为什么要获取Token 3.如何获取token 4.解析json 5.完整代码 三、抠像 1.准备地址 2.建立链接,和基本配置 3.图片格式转换 4.开始上传 5.获取回复…...

MySQL_表的基本操作

课 程 推 荐我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈虚 拟 环 境 搭 建 :&#x1…...

【网站架构部署与优化】源码编译安装LAMP

文章目录 LAMP架构概述各组件的主要作用构建LAMP平台的安装顺序 编译安装Apache httpd服务指南1. 准备工作1.1 关闭防火墙并传输软件包1.2 安装环境依赖包 2. 配置软件模块2.1 解压软件包2.2 移动apr组件包2.3 配置httpd 3. 编译及安装4. 优化配置4.1 配置文件路径4.2 添加http…...

【Linux】Linux的基本指令(1)

A clown is always a clown.💓💓💓 目录 ✨说在前面 🍋知识点一:Linux的背景 •🌰1.Unix发展的历史 •🌰2.Linux发展历史 •🌰3.企业应用现状 •🌰4.发行版本 &…...

Python安装虚拟环境Conda

这里写自定义目录标题 Conda介绍Conda下载与安装下载地址安装检查是否安装成功Conda中的几个重要目录 envs、pkgspkgs文件夹envs文件夹 Conda 使用教学查看 Conda 自带库配置下载源设置下载时显示通道地址创建Conda 环境查看Conda 环境克隆环境Conda 环境导出环境配置从配置文件…...

基于STM32设计的烘干车间远程控制系统(腾讯云IOT)(228)

文章目录 一、前言1.1 项目介绍【1】项目背景【2】设计实现的功能【3】项目硬件模块组成1.2 设计思路【1】整体设计思路【2】ESP8266工作模式配置1.3 项目开发背景【1】选题的意义【2】可行性分析【3】参考文献【4】项目背景【5】摘要1.4 开发工具的选择【1】设备端开发【2】上…...

Nginx泛域名 解析的匹配前缀绑定或转发到子目录

网站的目录结构为: # tree /home/wwwroot/landui.com /home/wwwroot/landui.com ├── bbs │ └── index.html └── www └── index.html 2 directories, 2 files /home/wwwroot/landui.com为nginx的安装目录下默认的存放源代码的路径。 bbs为论坛…...

黑神话悟空mac可以玩吗

黑神话悟空mac上能不能玩对于苹果玩家来说很重要,那么黑神话悟空mac可以玩吗?目前是玩不了了,没有针对ios系统的版本,只能之后在云平台上找找了,大家可以再观望下看看。 黑神话悟空mac可以玩吗 ‌使用CrossOver‌&…...

Nuxt Kit 中的插件:创建与使用

title: Nuxt Kit 中的插件:创建与使用 date: 2024/9/19 updated: 2024/9/19 author: cmdragon excerpt: 摘要:本文介绍了在 Nuxt 3 框架中使用 Nuxt Kit 创建和管理插件的方法,包括使用addPlugin注册插件、创建插件文件、在Vue组件中使用插件,以及使用addPluginTemplate…...

C++(虚构造与虚析构/类型信息运算符/强制类型转换)

一、虚构造与虚析构 1、构造函数能否是虚函数,为什么? 对象有创建过程: 1、给对象分配内存 2、根据继承表顺序调用父类构造 3、根据成员对象的的定义顺序调用成员对象的构造函数 4、执行对象自己的构造函数 如果父类的构造函数函数设计…...

python毕业设计基于django+vue医院社区医疗挂号预约综合管理系统7918h-pycharm-flask

目录 技术栈和环境说明预期达到的目标具体实现截图系统设计Python技术介绍django框架介绍flask框架介绍解决的思路性能/安全/负载方面可行性分析论证python-flask核心代码部分展示python-django核心代码部分展示操作可行性技术路线感恩大学老师和同学详细视频演示源码获取 技术…...

tidb 集群搭建

官网的搭建文档:使用 TiUP 部署 TiDB 集群 | TiDB 文档中心 我本地使用三台 centos7.9 服务器搭建,要保证三台服务器之间是可以互相通信的; 搭建集群的命令在其中一台服务器上执行即可; 1、安装tiup: curl --proto …...

SpringBoot开发——Spring Boot Controller 最佳实践

文章目录 1、RESTful接口地址的定义规则2、设计通用控制器基类3、统一的返回对象设计4、统一的异常处理5、实际案例: 订单控制器 (OrderController)结论 随着微服务架构的普及,RESTful API已经成为现代Web服务的标准设计模式。Spring Boot为开发者提供了强大的工具来…...

使用Ubuntu耳机输出正弦波信号

最近有一个项目想使用喇叭发出一个标准的正弦波测试信号,故记录下操作过程 sudo apt install libasound2-dev 否则有可能会报错: alsaaudio.c:28:10: fatal error: alsa/asoundlib.h: No such file or directory 安装pyalsaaudio: pip …...