三维坐标旋转矩阵

1.三维坐标旋转矩阵的推导过程

任何维的旋转可以表述为向量与合适尺寸的方阵的乘积。最终一个旋转等价于在另一个不同坐标系下对点位置的重新表述。 坐标系旋转角度θ则等同于将目标点围绕坐标原点反方向旋转同样的角度θ。

若以坐标系的三个坐标轴X、Y、Z分别作为旋转轴,则点实际上只在垂直坐标轴的平面上作二维旋转。

假设三维坐标系(右手坐标系,拇指即指向X轴的正方向。伸出食指和中指,如右图所示,食指指向Y轴的正方向,中指所指示的方向即是Z轴的正方向。要确定轴的正旋转方向,用右手的大拇指指向轴的正方向,弯曲手指。那么手指所指示的方向即是轴的正旋转方向)中的某一向量,其在直角坐标系中的图如图1所示。其中点P在XY平面、XZ平面、YZ平面的投影分别为点M、点N、点Q。

这里写图片描述

一、绕Z轴逆时针旋转θ角
绕Z轴旋转,相当于在XY平面的投影OM绕原点逆时针旋转,如下图所示,OM旋转θ角到OM’。
这里写图片描述

设旋转前的坐标为,旋转后的坐标为,则点M的坐标为,点M’的坐标为。由此可得:

      
      

对于和进行三角展开可得:

且有;可得绕Z轴旋转角的旋转矩阵为:

由此可得:
二. 绕X轴逆时针旋转θ角

三. 绕Y轴逆时针旋转θ角

以上旋转矩阵都是在右手坐标系下计算的。三维旋转矩阵就可由以上三个矩阵相乘得到。
这里的旋转矩阵是需要左乘的,而且以逆时针为正。R是一个旋转矩阵,X是一个三维列向量[x,y,z]’。
RX就是把X旋转。

参考:

  1. http://blog.csdn.net/qiuqchen/article/details/21980731
  • 47
    点赞
  • 164
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
"请用300字中文回答:C是计算机科学中的一种编程语言。它是由贝尔实验室的丹尼斯·里奇在20世纪70年代初设计开发的。C语言被广泛应用于操作系统、编译器、数据库和其他高性能软件的开发中。它是一种高级的、通用的编程语言,具有强大的功能和灵活性。 C语言之所以受到广泛的欢迎和应用,是因为它具有简洁、高效的特点。C语言的语法相对简单,易于学习和理解。C语言支持面向对象的编程方法,同时也支持过程式编程。C语言提供了丰富的函数库,可以实现各种功能。 C语言是一种面向过程的编程语言,它将程序设计看作是一系列的操作步骤。C语言支持变量、表达式、循环、条件判断等基本的编程概念。C语言提供了丰富的数据类型,包括整数、浮点数、字符以及指针等。C语言也支持结构和联合等复杂的数据类型。 C语言是一种编译型语言,它通过编译器将源代码转换成机器码,然后在计算机上执行。C语言的编译过程包括预处理、编译、汇编和链接等步骤。C语言的编译器通常会生成高效的机器码,可以充分发挥计算机的性能。 总的来说,C语言是一种强大而灵活的编程语言,被广泛应用于计算机科学和软件工程领域。它不仅适用于系统级开发,也适用于应用级开发。掌握C语言可以使程序员更加高效地开发软件,并提高软件的性能和可靠性。"
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值