推导坐标旋转公式(转)
在《Flash actionScript 3.0 动画教程》一书中有一个旋转公式:
x1=cos(angle)*x-sin(angle)*y;
y1=cos(angle)*y+sin(angle)*x;
其中x,y表示物体相对于旋转点旋转angle的角度之前的坐标,x1,y1表示物体旋转angle后相对于旋转点的坐标
从数学上来说,此公式可以用来计算某个点绕另外一点旋转一定角度后的坐标,例如:A(x,y)绕B(a,b)旋转β度后的位置为C(c,d),则x,y,a,b,β,c,d有如下关系式:
1。设A点旋转前的角度为δ,则旋转(逆时针)到C点后角度为δ+β
2。求A,B两点的距离:dist1=|AB|=y/sin(δ)=x/cos(δ)
3。求C,B两点的距离:dist2=|CB|=d/sin(δ+β)=c/cos(δ+β)
4。显然dist1=dist2,设dist1=r所以:
r=x/cos(δ)=y/sin(δ)=d/sin(δ+β)=c/cos(δ+β)
5。由三角函数两角和差公式知:
sin(δ+β)=sin(δ)cos(β)+cos(δ)sin(β)
cos(δ+β)=cos(δ)cos(β)-sin(δ)sin(β)
所以得出:
c=r*cos(δ+β)=r*cos(δ)cos(β)-r*sin(δ)sin(β)=xcos(β)-ysin(β)
d=r*sin(δ+β)=r*sin(δ)cos(β)+r*cos(δ)sin(β)=ycos(β)+xsin(β)
即旋转后的坐标c,d只与旋转前的坐标x,y及旋转的角度β有关
从图中可以很容易理解出A点旋转后的C点总是在圆周上运动,圆周的半径为|AB|,利用这点就可以使物体绕圆周运动,即旋转物体。
推导坐标旋转公式(转)相关推荐
- 坐标旋转公式(推导)
公式: x1=cos(angle)*x-sin(angle)*y; y1=cos(angle)*y+sin(angle)*x; 其中x,y表示物体相对于旋转点旋转angle的角度之前的坐标,x1,y1 ...
- 坐标旋转公式-- 角度和弧度
x1=cos(angle)*x-sin(angle)*y; y1=cos(angle)*y+sin(angle)*x; 其中x,y表示物体相对于旋转点旋转angle的角度之前的坐标,x1,y1表示物体 ...
- “等一下,我碰!”——常见的2D碰撞检测
"碰乜鬼嘢啊,碰走晒我滴靓牌".想到"碰"就自然联想到了"麻将"这一伟大发明.当然除了"碰",洗牌的时候也充满了各种『碰 ...
- python坐标转化极坐标方程公式_《向量》系列——4.天旋地转(向量,复数,极坐标)...
坐标旋转 如图,坐标(x,y)绕点(p,q)逆时针旋转θ角后得到坐标(x',y'),求x',y'关于x,y的表达式. 之前我们已经讨论过这个问题,在<函数图像旋转公式>一文中,利用解析几何 ...
- 图像中某点绕点旋转后的坐标,图像旋转坐标位置
图像中某点绕点旋转后的坐标,图像旋转坐标位置 在平面坐标上,任意点P(x1,y1),绕一个坐标点Q(x2,y2)旋转θ角度后,新的坐标设为(x, y)的计算公式: x= (x1 - x2)*cos(θ ...
- 【OpenCV学习笔记】之六 手写图像旋转函数---万丈高楼平地起
话说,平凡之处显真格,这一点也没错! 比如,对旋转图像进行双线性插值,很简单吧? 可,对我,折腾了大半天,也没有达到预期效果! 尤其是三个误区让我抓瞎好久: 1,坐标旋转公式. 这东西,要用 ...
- 三维空间坐标的旋转算法详解_矩阵描述三维空间旋转
本节简单介绍用矩阵来描述旋转.在二维平面上,复数无疑是描述旋转的最佳工具:然而推广到三维空间中,却要动用到"四元数"了.为了证明四元数的相关结论,我们需要三维旋转的矩阵描述.最一般 ...
- 机器学习算法、深度学习算法涉及的数学知识
微积分基础 导数的定义 左导数.右导数.可导函数 导数几何意义.物理意义 基本函数求导公式 四则运算法则 复合函数求导法则 神经网络激活函数的导函数求解 高阶导数 导数与函数单调性 极值定理 导数与函 ...
- clark变换_电力变换器PWM原理与实践,p43页,空间矢量理解
所看书籍:<Pulse Width Modulation for Power Converters Principles and Practice >by D. Grahame Holme ...
最新文章
- 超卖频发or商品滞销?压倒卖家的最后一根稻草竟是库存!
- HDU 1236 ( 排名 )
- JDK7与JDK8中HashMap的实现
- [BZOJ 4827][Hnoi2017]礼物
- linux ba 模拟,在你的 Python 游戏中模拟引力 | Linux 中国
- REVERSE-PRACTICE-CTFSHOW-4
- ipv4到ipv6的过渡
- 山石网科发布数据安全综合治理体系,覆盖数据全生命周期
- 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:概述
- OKB持续拉升突破8美元关口
- java web免费案例_java web 典型项目开发案例
- 把图片url 伪静态 php,php url伪静态化的实现方法详解
- wxParse解析iframe播放视频
- Guitar Pro 教程之如何打开 GPX 文件
- 清零软件解决连供打印机喷嘴断墨和堵塞
- 【iphone4s/ipad2回滚ios6.1.3】file:installer.cpp; line: 71; what:_assert(teams.empty()) 报错解决方法
- 生活,人艰不拆,各种躺枪
- 小程序源码放自己服务器上,小程序源码怎么安装到自己服务器?
- lm2576使用注意
- 喜大普奔!CATIA to SuperMap 模型转换插件横空出世!
热门文章
- mysql五-1:单表查询
- gcd(欧几里得算法)
- Python用MySQLdb, pymssql 模块通过sshtunnel连接远程数据库
- InstallShield limited edition 生成单个 setup.exe 安装文件
- c语言程序设计王新萍课后答案,C语言程序设计教程
- 基于Matlab的循环码实验报告,基于MATLAB的循环码实验报告
- android reboot 定时重启可靠吗,请教一下有人做过安卓系统 reboot 重启之后,appium 能自动重新连接吗...
- 分析Java中的三种不同变量的区别
- Linux常用的网络命令笔记
- 关于 ASP.NET 内存缓存你需要知道的 10 点