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
(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
相关文章推荐
- MFC-箭头的画法
- HDU 1700 || Points on Cycle (向量旋转,圆上等边三角形的周长最长
- CSS3仿淘宝旋转小箭头
- 算法 (向量旋转)
- 计算两向量的旋转角
- 计算几何之向量旋转
- 根据旋转前后的向量值求旋转矩阵
- 山东省第四届ACM程序设计竞赛A题:Rescue The Princess(向量旋转)
- 向量旋转的计算公式
- 向量的旋转
- 旋转向量-旋转矩阵
- 【JavaScript动画基础】学习笔记(一)-- 旋转箭头
- 神奇的向量旋转
- 【编程珠玑】将一个n元向量左旋转i个位置
- UVa11178 - Morley's Theorem(向量旋转+直线交点)
- POJ 1835 : 宇航员 - 模拟,三维向量旋转
- 《编程珠玑(第2版)》笔记——将一个n元一维向量向左旋转i个位置(第2章)
- PCL入门<四>根据向量做点云旋转
- C# WPF动点任意移动气泡画法(解决方案使用到数学勾股定理、正弦定理、向量知识)。
- 向量旋转算法