当前位置:网站首页>D39_Eulerian Angles and Quaternions
D39_Eulerian Angles and Quaternions
2022-08-05 06:32:00 【Not so simple GG】
Table of Contents
5. Cross product of quaternions
1. Euler Angles
Consists of three angles (x, y, z), which are used to describe the rotation of an object in a specific coordinate system
The rotation adjusted by the Inspector panel is the Euler angle transform.eulerAngles
Eulerian angles are intuitive and easy to understand, but one disadvantage is the universal lock (please encyclopedia)
Unity uses y→x→z
2. Quaternion
Quaternion
A quaternion consists of a scalar and a 3D element [w,(x,y,z)]
Meaning: Represents a rotation in 3D space
Given the rotation, assuming that the rotation is about the N axis, the rotation is θ degrees, and the N axis is (x, y, z), then it constitutes a quaternion
Q=[cos(θ/2),sin(θ/2)*x,sin(θ/2)*y,sin(θ/2)*z]
Constructing a quaternion from axis-angle pairs Quaternion.AngleAxis
Euler angle conversion to quaternion Quaternion.Euler
Quaternion to Euler Angles .eulerAngles
3. Negative Quaternion
q[w,(x,y,z)] -q[-w,(-x,-y,-z)]
Geometric meaning: q and -q represent the same amount of rotation
4.Unit Quaternion
q[1,0,0,0] -q[-1,0,0,0]
Quaternion.identity
Geometric meaning: represents a quaternion without a rotation angle
5. QuaternionThe cross product of
The result obtained by multiplying a quaternion by a quaternion is still a quaternion
Geometric meaning: The new quaternion obtained by the cross product of two quaternions is the superposition of the two quaternion rotations
transform.rotation*=Quaternion.AngleAxis();
The cross product of a quaternion and a vector can get a new vector that rotates according to the rotation direction of the quaternion
Note: Only the quaternion * vector operator is overloaded in the quaternion, and there is no overloaded vector * quaternion operator, so only
Vector3 dir=Quaternion.AngleAxis()*Vector3.forward;
Quaternion.LookRotation(); Passing a vector as a parameter can get the angle required to turn the positive direction of the object to the vector
6. Quaterniondifference
Quaternion.Slerp(a,b,t);
边栏推荐
- DevOps流程demo(实操记录)
- I/O performance and reliability
- vim教程:vimtutor
- 入职前,没想到他们玩的这么花
- What's the point of monitoring the involution of the system?
- 解决这三大问题,运维效率将超90%的医院
- 增长:IT运维发展趋势报告
- config.js相关配置汇总
- NIO works is analysed
- Dry!Teach you to use industrial raspberries pie combining CODESYS configuration EtherCAT master station
猜你喜欢
input detailed file upload
IP address and subnet division
From "dual card dual standby" to "dual communication", vivo took the lead in promoting the implementation of the DSDA architecture
static routing
disabledDate 日期选择器 datePicker
LeetCode中常用语言的一些基本方法记录
RAID磁盘阵列
干货!教您使用工业树莓派结合CODESYS配置EtherCAT主站
Transformer interprets and predicts instance records in detail
Vim tutorial: vimtutor
随机推荐
One-arm routing experiment and three-layer switch experiment
从“双卡双待“到”双通“,vivo率先推动DSDA架构落地
Does flink cdc currently support Gauss database sources?
vim教程:vimtutor
请问下通过flink sql读取hologres 的两张表的 binlog,然后如何进行join?
selenium模块的操作之拉钩
What?CDN cache acceleration only works for accelerating static content?
程序员应该这样理解I/O
Billions of IT operations in the market, the product by strength to speak
单臂路由实验和三层交换机实验
Transport layer protocol (TCP 3-way handshake)
Mina断线重连
Transformer详细解读与预测实例记录
spark operator-parallelize operator
input详解之文件上传
Native JS takes you to understand the implementation and use of array methods
config.js相关配置汇总
ALC experiment
Next-Generation Parsing Technology - Cloud Parsing
From "dual card dual standby" to "dual communication", vivo took the lead in promoting the implementation of the DSDA architecture