绕单轴的旋转矩阵

对于绕单轴的旋转矩阵,很多小伙伴分不清楚到底是B转W还是W转B的,下面就先用上面对旋转矩阵的理解来推导一下绕单轴的旋转矩阵,然后介绍下怎么记忆。注意对旋转正负号的定义,惯用的定义是,从原点沿着坐标轴看,顺时针为正。下面看图。

初始状态的W和B系绕Z轴旋转绕Y、X轴旋转

这样就通过计算B系各坐标轴在W系的投影得到了绕各轴旋转的  ,反之计算W系在B系的投影就可得到绕各轴旋转的  ,不过因为它们互为转置,所以得到了一个,就知道另一个了。

注意这里的W系和B系可以换成任意两个坐标系,只要把握哪个坐标系是动坐标系,以及我们要找哪个坐标系到哪个坐标系的旋转矩阵就不容易出错了。

绕单轴的旋转矩阵对角线都是余弦或1,其他的0元素也很容易确定,讨厌的就是正弦函数前面的正负号了。那么我的记忆方法就是。。。还是把旋转的两个轴画出来,然后只要确定一个正弦的符号,另一个位置的正弦取相反的符号就行了。确实还是挺麻烦,不过按照这个理解是不会搞错B转W和W转B的,大家可以试一试。

我们把绕x、y、z的从B系到W系的单轴旋转矩阵分别  、  、  ,那么就有  ,正好对应了从B系到W系的旋转顺序。这也叫链式法则,相信大家看过相关书都明白,以及旋转矩阵的逆就是它的转置,表示相反的坐标转换,也都不再赘述。

原文地址:https://www.cnblogs.com/yibeimingyue/p/12069347.html

时间: 2024-08-01 23:33:13

绕单轴的旋转矩阵的相关文章

绕任意轴旋转的矩阵推导总结

前言 常用的几何变换中旋转是较为复杂的一种,最近看<Physically Based Rendering, Second Edition: From Theory To Implementation>一书涉及绕任意轴旋转的实现,也给出了大体思路,但具体的推导过程及最后的旋转矩阵并未直接地给出,故根据参考Animated CGEM: Rotation About an Arbitrary Axis总结(欢迎指正). (一)基础 1.点乘与叉乘 点乘(dot)亦称作内积或数量积,如图,a·b =

快速排序算法原理及实现(单轴、三向切分、双轴)

欢迎探讨,如有错误敬请指正 如需转载,请注明出处http://www.cnblogs.com/nullzx/ 1. 单轴快速排序的基本原理 快速排序的基本思想就是从一个数组中任意挑选一个元素(通常来说会选择最左边的元素)作为中轴元素,将剩下的元素以中轴元素作为比较的标准,将小于等于中轴元素的放到中轴元素的左边,将大于中轴元素的放到中轴元素的右边,然后以当前中轴元素的位置为界,将左半部分子数组和右半部分子数组看成两个新的数组,重复上述操作,直到子数组的元素个数小于等于1(因为一个元素的数组必定是有

cocos2dx--- Node 绕Y轴旋转

step += 5; float ra = (float) CC_DEGREES_TO_RADIANS(step); float i = sinf(ra) * pNode->getCamera()->getZEye(); float j = cosf(ra) * pNode->getCamera()->getZEye(); pNode->getCamera()->setEyeXYZ(i, 0, j); cocos2dx--- Node 绕Y轴旋转,布布扣,bubuko.

定点绕定轴旋转

通过两个已知点,绕定轴旋转360次,每次旋转一度,获得360个点,一次相连,可以获得一个近似圆.网上找的公式基本都是左手坐标系下的选择公式,故而进行了多次坐标转换 1.3.2版本 public static List<Vector3d> Translate(List<Vector3> list) { List<Vector3d> zuoshou = new List<Vector3d>();//存左手坐标系下的各点坐标 List<Vector3d>

(转)android3D动画,绕y轴旋转

原文地址:http://blog.csdn.net/x_i_a_o_h_a_i/article/details/40449847 其实网上的3D旋转的例子很多,在这里我只是想把其代码做一个解释. 先上图: 代码: TurnAroundActivity /** * 图片浏览器的主Activity. * * @author guolin */ public class TurnAroundActivity extends Activity { /** * 根布局 */ private Relativ

实现物体绕不同轴旋转,并可以外部调用的函数

第一个文件,声明枚举类型,分别为均匀变化和加速变化 1 2 3 4 5 6 7 8 using UnityEngine; using System.Collections; public enum CTRotationType {     Uniform,     AccelerateUniformly } 第二个文件:主函数,实现围绕轴变化的两个函数,分别为均匀变化和加速变化   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

构建绕任意轴旋转的矩阵

转载请注明出处:http://www.cnblogs.com/jietian331/p/5634039.html

绕X 轴 Y轴 Z轴旋转的结果

void warp_perspect_3_angle(cv::Mat face, float roll, float yaw, float pitch) { cv::Mat face_img = face.clone(); int imgHeight = face_img.rows; int imgWidth = face_img.cols; float alpha, beta, gamma; alpha = pitch * 3.1415926 / 180; beta = yaw* 3.1415

31_ABB机器人限定单轴运动范围的操作

原文地址:https://www.cnblogs.com/csflyw/p/11517703.html