您的位置:首页 > 其它

MFC_箭头画法之向量旋转

2014-07-04 16:46 197 查看
二维坐标系下的向量旋转:




                 (a)                                                     (b)
在二维坐标系中,向量的旋转公式可以由三角函数的几何意义推出。
比如上图所示是位置向量R逆时针旋转角度B前后的情况。
在(a)图中,假设向量的模长为R, 则可以推导出如下关系:
        x0 = R  * cosA
        y0 = R  * sinA
变换之后:
  cosA = x0  /  R
  sinA = y0  /  R
在(b)图中, 同理可以可证:
  x1 = R * cos( A + B )
  y1 = R * sin( A + B )
  其中向量(x1, y1)为向量(x0, y0)逆时针旋转角度B后得到的点。
然后根据三角函数的表达式, 将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)
  y1 = R * (y0  * cosB  /  R + x0 * sinB  /  R)
  整理:
  x1 = x0 * cosB - y0 * sinB
  y1 = x0 * sinB + y0 * cosB
  这样我们就得到了向量围绕坐标原点的逆时针旋转公式。

同理可知:
顺时针旋转公式如下:
  x1 = x0 * cos(-B) - y0 * sin(-B)
  y1 = x0 * sin(-B) + y0 * cos(-B)
  整理:
  x1 = x0 * cosB + y0 * sinB
  y1 = -x0 * sinB + y0 * cosB

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息