Unity 向量

news/2024/7/7 23:11:10

向量的基本概念
向量:既有大小又有方向的量叫做向量。

零向量:各分量都是0的向量。

归一化向量:方向不变,将向量的长度变为1。

单位向量:长度为1的向量(归一化后的向量)。

向量的模:只有长度没有方向。

向量在Unity中的运算


//声明2个向量
Vector3 v1= new Vector3(1,1,1);
Vector3 v2= new Vector3(2,2,2);


向量的加减:将向量的各个分量想加减

//Unity中向量的加减
Vector3 v3_add = v1 + v2;
Vector3 v3_sub = v1 - v2;
向量的数乘:向量与一个标量相乘称为数乘。数乘可以对向量的长度进行缩放,如果标量大于0,那么向量的方向不变,若标量小于0,则向量的方向会变为反方向。

//向量的数乘
Vector3 v3_mul = v1 *2;
点乘:两个向量点乘得到一个标量,数值等于两个向量长度相乘再乘以两者夹角的余弦值。如果两个向量a,b均为单位向量,那么a.b等于向量b在向量a方向上的投影的长度(或者说向量a在向量b方向上的投影),点乘通常用于计算夹角、判断向量方向和计算投影等。

//点乘
float f_Dot = Vector3.Dot(v1, v2);


叉乘:两个向量的叉乘得到一个新的向量,新向量垂直与原来的两个向量,并且长度等于原来向量长度相乘后夹角的正弦值注意:叉乘不满足交换律 即a×b 不等于 b×a,叉乘通常用于计算法线、计算面积、旋转物体等。

//叉乘
Vector3 v3_cross = Vector3.Cross(v1, v2);


Vector3类中的常用方法和属性
//世界坐标系下的向量
//Vector3(0, 0, 1);
Vector3.forward;
//Vector3(0, 0, -1);
Vector3.back;
//Vector3(0, 1, 0);
Vector3.up;
//Vector3(0, -1, 0);
 Vector3.down;
//Vector3(1, 0, 0);
Vector3.right;
//Vector3(-1, 0, 0);
Vector3.left;
//Vector3(0, 0, 0);
Vector3.zero;
//Vector3(1, 1, 1);
Vector3.one;
//计算两个向量的距离
float f_distance = Vector3.Distance(v1, v2);

//返回两个向量直接的差值
//第三个参数是一个0到1之间的标量值,代表在两个向量之间的插值比例。
Vector3 v3_lerp = Vector3.Lerp(v1, v2, 0.5f);

//将向量归一化
Vector3 v3_norm = Vector3.Normalize(v1); 


http://lihuaxi.xjx100.cn/news/1101818.html

相关文章

解决docker启动时报‘Error response from daemon: network xxx not found‘问题

公司近期更换了网络设备,网段也更换了,导致原来的测试服务器无法连接,网关强制重启后才得以解决。 服务器启动后几个docker服务没有正常重启。 执行命令查询服务状态 docker ps -a确实有几个服务停止运行了,于是手动执行启动命令…

thinkphp+vue+html超市零食品美食推荐系统零食购物商城网站7v281

本系统的开发使获取食品推荐系统信息能够更加方便快捷,同时也使食品推荐系统管理信息变的更加系统化、有序化。系统界面较友好,易于操作 运行环境:phpstudy/wamp/xammp等 开发语言:php 后端框架:Thinkphp5 前端框架:vu…

项目实战——获取树形结构

获取树形结构 一、背景介绍二、 思路和方案方案一:使用递归查询的方式并构建树形结构方案二:使用临时表的方式构建树形结构使用临时表的优缺点 三、过程项目案例核心代码 四、总结五、升华 一、背景介绍 我们在开发中时常会遇到需要用到树形结构这种表示…

APSIM模型

随着数字农业和智慧农业的发展,基于过程的农业生产系统模型在模拟作物对气候变化的响应与适应、农田管理优化、作物品种和株型筛选、农田固碳和温室气体排放等领域扮演着越来越重要的作用。APSIM (Agricultural Production Systems sIMulator)模型是世界知名的作物生…

C++入门2(缺省参数 inline函数 函数重载 函数模板)

C入门2 缺省参数结合优先级 inline函数vs中的测试实例inline函数要点内联函数与宏定义区别: 函数重载定义名字粉碎技术C编译时函数名修饰约定规则 函数模板 缺省参数 函数定义时,缺省值赋值是从右向左依次赋值 调用函数时,从左向右依次给实参值&#xf…

Zotero 抓取知网文献失败解决办法梳理(针对问题:更新Translator无效,更新茉莉花插件无效,卸载Zotero无效,使用学校VPN访问知网)

Zotero 抓取知网文献失败解决办法梳理(针对问题:更新Translator无效,更新茉莉花插件无效,卸载Zotero无效,使用学校VPN访问知网) 问题背景解决方案一解决方案二解决方案三 说在前面:解决方案一和…

企业加快数字化转型的三种方法

随着数字化技术的不断发展,越来越多的企业开始意识到数字化转型的重要性。数字化转型可以帮助企业提高效率,降低成本,增强竞争力。那么企业应该如何加快数字化转型呢?以下是三种方法。 制定数字化战略 数字化转型需要有一个明确的…

肝一肝设计模式【六】-- 装饰器模式

系列文章目录 肝一肝设计模式【一】-- 单例模式 传送门 肝一肝设计模式【二】-- 工厂模式 传送门 肝一肝设计模式【三】-- 原型模式 传送门 肝一肝设计模式【四】-- 建造者模式 传送门 肝一肝设计模式【五】-- 适配器模式 传送门 文章目录 系列文章目录前言一、什么是装饰器模…