向量旋转公式(转)

摘要:
在二维坐标系中,可以从三角函数的几何意义导出位置向量的旋转公式。例如,上图显示了位置向量R逆时针旋转角度B前后的情况。在左图中,我们有如下关系:x0=|R|*cosA=˃cosA=x0/|R|y0=|R|*sinA=˃sinA=y0/|R|在右图中,我们的关系是:x1=|R|*cos(A+B)y1=|R||*sin(A+B

在二维坐标系中,一个位置向量的旋转公式可以由三角函数的几何意义推出.
向量旋转公式(转)第1张

比如上图所示是位置向量R逆时针旋转角度B前后的情况.
      在左图中,我们有关系:
  x0 = |R| * cosA       =>          cosA = x0 / |R|
  y0 = |R| * sinA        =>          sinA = y0 / |R|
   在右图中,我们有关系:
  x1 = |R| * cos(A+B)
  y1 = |R| * sin(A+B)
  其中(x1,y1)就是(x0,y0)旋转角B后得到的点,也就是位置向量R最后指向的点.我们展开cos(A+B)和sin(A+B),得到:
  x1 = |R| * (cosAcosB - sinAsinB)
  y1 = |R| * (sinAcosB + cosAsinB)
  现在把  cosA = x0 / |R| 和 sinA = y0 / |R|  代入上面的式子,得到:
  x1 = |R| * (x0 * cosB / |R| - y0 * sinB / |R|) =>  x1 = x0 * cosB - y0 * sinB
  y1 = |R| * (y0 * cosB / |R| + x0 * sinB / |R|) =>  y1 = x0 * sinB + y0 * cosB
  这样我们就得到了二维坐标下向量围绕圆点的逆时针旋转公式.顺时针旋转就把角度变为负:
  x1 = x0 * cos(-B) - y0 * sin(-B) =>  x1 = x0 * cosB + y0 * sinB
  y1 = x0 * sin(-B) + y0 * cos(-B)=>  y1 = -x0 * sinB + y0 * cosB
  现在我要把这个旋转公式写成矩阵的形式,有一个概念我简单提一下,平面或空间里的每个线性变换(这里就是旋转变换)都对应一个矩阵,叫做变换矩阵.对一个点实施线性变换就是通过乘上该线性变换的矩阵完成的.好了,打住,不然就跑题了.
所以二维旋转变换矩阵就是:
                                           [cosA  sinA]          [cosA -sinA]
                                           [-sinA cosA] 或者  [sinA cosA]

  我们对向量进行旋转变换可以通过矩阵完成,比如我要向量(x,y)绕原点逆时针旋转角度A:
                      [x,y] x  [cosA  sinA]     = [x*cosA-y*sinA  x*sinA+y*cosA]        

                                  [-sinA cosA] 

      旋转后的向量为:[x*cosA-y*sinA  x*sinA+y*cosA] 

原文:http://www.zybang.com/question/143ceaa20d3942f3c6dbe9415dd81d0a.html

免责声明:文章转载自《向量旋转公式(转)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇如何在64位Win7下使用震动手柄(2) 电商数据库表设计下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C#图片动画效果(旋转360度)异步

private void Button1_Click(object sender, EventArgs e) { Graphics graphics = this.CreateGraphics(); graphics.Clear(Color.W...

三维坐标下的旋转

  三维坐标的旋转有以下几种常见的表示形式:旋转向量,旋转矩阵,欧拉角,四元数,下面对这四种表示形式及其之间的转换进行介绍 旋转向量   通常为3x1的列向量,向量方向即为旋转轴,向量的模表示绕轴逆时针旋转的角度,如旋转向量v=[a,b,c],那么旋转角度theta=sqrt(a2+b2+c2),旋转轴z=[a/theta, b/theta, c/thet...

VTK 空间几何变换(Transform),平移、旋转和缩放

先看下面的模型,这是一个Cow的三维模型, 在使用中,你是否会有下面的操作? 1.将Cow移动到某个位置——平移 2.转动到Cow背面——旋转 3.改变它大小——缩放 等等 可能你会说,这还不简单,通过操作相机就好了。然而并不是这样,操作相机,只使得相机的空间位置发生了变化,对三维物体并没有改变,要想改变模型,就需要对模形本身做空间变换。 空间变换的基础...

旋转矩阵、欧拉角、四元数理论及其转换关系

博客转载自:http://blog.csdn.net/lql0716/article/details/72597719 1. 概述 旋转矩阵、欧拉角、四元数主要用于表示坐标系中的旋转关系,它们之间的转换关系可以减小一些算法的复杂度。 本文主要介绍了旋转矩阵、欧拉角、四元数的基本理论及其之间的转换关系。 2、原理 2.1 旋转矩阵 对于两个三维...

Unity3D for iOS初级教程:Part 1/3(上)

                                                              Unity3D for iOS初级教程:Part 1/3(上) 这篇教材是来自教程团队成员 Christine Abernathy, 他是Facebook的开发支持团队的工程师。Unity是最为流行的游戏引擎之一。这是有充分缘由的:U...

IOS--CALayer实现,界限、透明度、位置、旋转、缩放组合动画(转)

首先引入框架:QuartzCore.framework在头文件声明:CALayer *logoLayer{//界限CABasicAnimation *boundsAnimation = [CABasicAnimationanimationWithKeyPath:@"bounds"];boundsAnimation.fromValue = [NSValue ...