首页 > 其他分享 >四元数与旋转

四元数与旋转

时间:2023-09-28 11:56:15浏览次数:28  
标签:实部 xi 欧拉角 zk 旋转 四元

四元数的最重要作用是解决了欧拉角定义中的万向死锁。

参考文献:https://www.zhihu.com/tardis/bd/art/78987582?source_id=1001

https://blog.csdn.net/qq_42648534/article/details/124072859

四元数旋转计算的基本公式为:

q = w + xi + yj + zk=cos(a/2)+u*sin(a/2)

其中,w是实部,xi、yj、zk是虚部,x、y、z分别是三个轴的旋转量,i、j、k是虚数单位。u为轴。

四元数的乘法规则如下:

q = q1 * q2

q = (w1, xi1, yj1, zk1) * (w2, xi2, yj2, zk2) = (w1w2 - x1x2 - y1y2 - z1z2) + (w1x2 + x1w2 + y1z2 - z1y2)i + (w1y2 - x1z2 + y1w2 + z1x2)j + (w1z2 + x1y2 - y1x2 + z1w2)k

多次旋转可以用四元数乘法表示。

 

p点绕u轴旋转可以表示为:

p的标量(实部)为0,虚部为位置。

最后附上欧拉角与四元数相互间的转换:

 

 

标签:实部,xi,欧拉角,zk,旋转,四元
From: https://www.cnblogs.com/xmds/p/17735398.html

相关文章

  • 33. 搜索旋转排序数组
    整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0<=k<nums.length)上进行了 旋转,使数组变为 [nums[k],nums[k+1],...,nums[n-1],nums[0],nums[1],...,nums[k-1]](下标 从0开始 计数)。例如, [0,1,2,4,5,6,7] 在......
  • RK平台--屏幕旋转
    针对RK平台屏幕旋转90度:  ......
  • vue大转盘旋转效果-停在随机定位的奖品处
    代码有点乱,给予vue写的,奖品可以自定义数量抽奖也是随机生成了奖品的下标,然后停在该下标的位置里面有个大转盘的背景图,自己随便找个圆形图片放上去就行了<!--这个案例大概实现了停止在初始位置,误差在±10度左右增加了奖品分布--><template><divclass="hello"><div......
  • 代码随想录算法训练营第8天| ● 344.反转字符串 ● 541. 反转字符串II ● 剑指Offer 0
    344.反转字符串mydemo--(一次就过)--(成功)classSolution{public:voidreverseString(vector<char>&s){intlen=s.size();chartmp;inti=0;intj=len-1;while(i<j){tmp=s[i];......
  • vue 大转盘旋转效果
    场景如下:用户点击抽奖,转盘立刻线性提速转动,同时请求抽奖接口,旋转过程中等待接口返回抽奖信息接口返回信息后,转盘减速至停转网上找到animejs动画框架,想钻研的同学可以看一下,我没有用此框架实现,是手写的这个demo没有实现停在指定奖品上也没有实现完全停止后,正好停在0°<temp......
  • 旋转编码器中断方式实现计数
    旋转编码器正转两路信号相位关系旋转编码器反转两路信号相位关系↓↓↓↓利用中断方式实现编码器计数↓↓↓↓↓int32_tEncoderNum=0;/*初始化PA0,PA1,PA4,打开EXTI中断*/voidEncoder_GPIO_Init(void){/*PA0=S1,PA1=S2,PA4=KEY*/__HAL_RCC_GPIOA_CLK_ENABLE();......
  • WPF 使用Image实现动画旋转Loading
    首先需要有一个Loading的图片,(白色背景,白色小圆圈,所以显示看不到): 创建一个用户控件,实现动画的功能:<UserControlx:Class="K.Controls.Controls.LoadingImage"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http:/......
  • C#实现图片的旋转功能
    WinForms直接提供了图片旋转的功能,相对来说比较方便。示例代码:varbitmap=Bitmap.FromFile(fileName);if(clockwise){bitmap.RotateFlip(RotateFlipType.Rotate90FlipNone);}else{bitmap.RotateFlip(RotateFlipType.Rotate270FlipNone);}bitmap.Save(tempFi......
  • 剑指 Offer 58 - II. 左旋转字符串
    剑指Offer58-II.左旋转字符串翻转前n个字符翻转其余字符翻转所有字符classSolution{publicStringreverseLeftWords(Strings,intn){char[]ch=s.toCharArray();reverse(ch,0,n-1);reverse(ch,n,ch.length-1);rever......
  • sketchup 动态组件 旋转 失灵 -- 两个坐标轴不同
    sketchup动态组件旋转失灵 使用sketchup做了一个门,使用了旋转z轴功能,然后把组件门放入另一个组件中,结果只能开门,不能关门,反复重复开门动作反复常识查找谷歌了半天没有结果后来发现 原来时外组件的坐标轴和内组件的坐标轴不一致调整内外组件坐......