《Unity》 向量四元数以及常用数学公式
这个东西不理解也就算了,每次还都不会使用,烦死了,这次记录一下。
Quaternion.AngleAxis(角度,沿axis轴)方法
返回一个旋转,意义是绕axis轴旋转angle
Quaterion*Quaternion
在lq的旋转状态下进行rq的旋转意义
Unity当中的旋转方向(世界坐标系是左手坐标系)
y: 正是往右边旋转
x: 正是下面旋转
z: 正是往左边旋转
速度*时间=某时移动矢量
为了确保同时按下w和d移动速度不变(因为两个方向的速度矢量肯定最后向量长度会变成根号2),可以把移动向量Normalize化
Vector3.Normalize()
静态方法:使向量的长度为1
Quaternion*Vector3
返回Vector3,意义是让Vector3旋转一个q的角度然后返回新的向量。
Quaternion.FromToRotation(v1,v2)
创建一个从v1到v2的旋转
Mathf.Acos(cos值)
返回弧度
Quaternion.AngleAxis(角度,axis)
绕axis轴旋转angle,创建一个旋转,角度是矢量
q1.RotationTo(q2)
返回一个旋转,目标是让原始旋转q1 能够转向 q2。
q.Right() 以及 q.Foward()
意义跟v.Right(),v.Forward() 是一样的,代表物体当前旋转的right,forward局部方向向量。
q.Inverse()
返回反向的旋转。 沿y正45,反着就是负45了。
transform.right
在想想transform.方向这种东西,代表的是物体的局部right轴或者up轴,在物体什么旋转都没有的时候,当然就代表跟世界的是一样的,例如Vector3.right,当然经过一个矩阵的旋转之后,例如绕y旋转,right轴也会受到影响,自然Vector3.right*旋转矩阵计算出来的新的right轴就是物体的局部right轴。
测试代码。
float angle = Vector3.Angle(Vector3.right, transform.right);// 假设angle 是30度angle = 30;//Vector3 newV = Quaternion.AngleAxis(angle,Vector3.up) *Vector3.right;//Debug.LogError($"newV:{newV}");//transform.right = newV;//Vector3 newV = Quaternion.AngleAxis(angle, Vector3.right) * Vector3.right;Vector3 newV = Quaternion.AngleAxis(angle, Vector3.right) * Vector3.up;Debug.LogError($"newV:{newV}");transform.up = newV;
所以其实我想说的是一个代表旋转的最终的旋转四元数*世界轴向量得出来的就是局部轴向量
Vector3 lRight = transform.rotation.Right();Vector3 lForward = transform.rotation.Forward();Debug.LogError($"qlRight: {lRight}");Debug.LogError($"qlForward: {lForward}");lRight = transform.right;lForward = transform.forward;Debug.LogError($"lRight:{lRight}");Debug.LogError($"lForward:{lForward}");lRight = transform.rotation * Vector3.right;lForward = transform.rotation * Vector3.forward;Debug.LogError($"lRight:{lRight}");Debug.LogError($"lForward:{lForward}");
速度:每秒xx的单位
帧速:速度/每秒多少帧
Input.GetAxis()的值范围
鼠标的话范围也许在1-20之间。
左上 正
右下 负
Mouse1 的话按下时1,松开是0
推荐学习文章:
复数是怎么代表角度的:https://www.shuxuele.com/algebra/complex-number-multiply.html , 转化成极坐标,在极坐标数学规律上寻找几何意义
四元数与旋转矩阵 https://openhome.cc/Gossip/WebGL/Quaternion.html
《Unity》 向量四元数以及常用数学公式相关推荐
- unity入门API————最常用的基类总结
unity入门API----最常用的基类总结 前言 学校的一个大创项目要用到unity,所以小学一下.但是unity这个体量似乎有点太大了吧-在书店淘了一本张尧写的<Unity3D从入门到实战& ...
- 【自动驾驶】30.c++实现基于eigen实现欧拉角(RPY), 旋转矩阵, 旋转向量, 四元数之间的变换(附代码)
矩阵的使用可参考系列博客:点击此处 原文链接:基于eigen实现欧拉角(RPY), 旋转矩阵, 旋转向量, 四元数之间的变换. 也可以参考另一篇博客:eigen 中四元数.欧拉角.旋转矩阵.旋转向量. ...
- Unity向量按照某一点进行旋转
一.unity的旋转 首先要知道一点就是在Unity的旋转中使用过四元数进行旋转的,如果对一个物体的rotation直接赋值你会发现结果不是你最终想要的结果,这个时候我们需要去借助Quaternion ...
- 三维空间坐标的旋转算法详解_视觉slam | 三维空间刚体运动的五种表达:旋转矩阵 变化矩阵 欧拉角 旋转向量 四元数及互相转换...
原po:高翔slam十四讲-刚体运动 1.旋转矩阵 考虑一次旋转 Before: 坐标系(e1,e2,e3), 向量(a1,a2,a3) After: 坐标系(e1',e2',e3'), 向量(a1' ...
- Latex常用数学公式
Latex常用数学公式 1.戴帽子的字母 2.希腊字母 3.任意 | 存在 | 非 4.运算符 基本运算符 优雅的省略号 美丽的括号 字体 矩阵 常用箭头 行列式,矩阵,方程组Latex表示 1 行列 ...
- Unity脚本介绍和常用API
Unity脚本介绍和常用API 脚本介绍 1.脚本 介绍 语法结构 编译过程 2.开发工具 MonoDevelop Visual Studio 3.脚本生命周期 简介 脚本生命周期的阶段 1.初始阶段 ...
- 几何公式和定理(初中)一些常用数学公式
几何公式和定理(初中)一些常用数学公式 1 过两点有且只有一条直线 2 两点之间线段最短 3 同角或等角的补角相等 4 同角或等角的余角相等 5 过一点有且只有一条直线和已知直线垂直 ...
- 常用数学公式的编程表达
今天把常用数学公式用C/C++表达组织一下,以便日后使用. 排列组合数 随机输出任意一个全排列 排列组合数 先来看看排列组合数的公式: Amn=n(n−1)-(n−m+1)=n!(n−m)! A_n^ ...
- Markdown 常用数学公式符号记录
这篇文章记录一些markdown文本编辑中常用的数学公式符号,尤其是一些生僻的符号,会持续更新. 上下标 1. $\vec{a}$ 向量 2. $\overline{a}$ 平均值 3. $\unde ...
最新文章
- 2018-2019-2 网络对抗技术 20165324 Exp4:恶意代码分析
- SpringMVC的文件上传和拦截器
- 总线协议之I2C总线时序
- python怎么只打印其中一行_如何在Python中让两个print()函数的输出打印在一行内?...
- 【CodeForces - 227A】Where do I Turn? (计算几何,叉积判断直线拐向)
- 10个理由告诉你为何要学Java编程?
- python监听键盘库_python监听、操作键盘鼠标库pynput详细教程|python基础教程|python入门|python教程...
- 华为云PB级数据库GaussDB(for Redis)揭秘第十期:GaussDB(for Redis)迁移系列(上)
- iPhone 12 5G更耗电?续航时间较4G妥妥地缩短不少
- 程序员面试题之解读构造函数
- 字节流 system.out ----printStream
- 光纤跳线接口_你知道光纤接头、尾纤、终端盒的作用与接法嘛?读懂这篇足够...
- UCF101数据集标签错误解决方案
- 目标跟踪 | 目标跟踪算法总结
- Unity 自定义扩展Hierachy右键菜单
- 短代码 html,WooCommerce 默认提供的简码短代码
- 微信小程序答题页——swiper渲染优化及swiper分页实现
- 教教你如何配置汤姆猫 和 Java 环境变量的设置
- 计算点到直线/线段的距离
- SDX62出现WARNING: CPU: 0 PID: 8743 at net/netfilter/nf_nat_core.c:614 nf_nat_setup_info+0x8e4/0x900