在《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|,利用这点就可以使物体绕圆周运动,即旋转物体。

推导坐标旋转公式(转)相关推荐

  1. 坐标旋转公式(推导)

    公式: x1=cos(angle)*x-sin(angle)*y; y1=cos(angle)*y+sin(angle)*x; 其中x,y表示物体相对于旋转点旋转angle的角度之前的坐标,x1,y1 ...

  2. 坐标旋转公式-- 角度和弧度

    x1=cos(angle)*x-sin(angle)*y; y1=cos(angle)*y+sin(angle)*x; 其中x,y表示物体相对于旋转点旋转angle的角度之前的坐标,x1,y1表示物体 ...

  3. “等一下,我碰!”——常见的2D碰撞检测

    "碰乜鬼嘢啊,碰走晒我滴靓牌".想到"碰"就自然联想到了"麻将"这一伟大发明.当然除了"碰",洗牌的时候也充满了各种『碰 ...

  4. python坐标转化极坐标方程公式_《向量》系列——4.天旋地转(向量,复数,极坐标)...

    坐标旋转 如图,坐标(x,y)绕点(p,q)逆时针旋转θ角后得到坐标(x',y'),求x',y'关于x,y的表达式. 之前我们已经讨论过这个问题,在<函数图像旋转公式>一文中,利用解析几何 ...

  5. 图像中某点绕点旋转后的坐标,图像旋转坐标位置

    图像中某点绕点旋转后的坐标,图像旋转坐标位置 在平面坐标上,任意点P(x1,y1),绕一个坐标点Q(x2,y2)旋转θ角度后,新的坐标设为(x, y)的计算公式: x= (x1 - x2)*cos(θ ...

  6. 【OpenCV学习笔记】之六 手写图像旋转函数---万丈高楼平地起

    话说,平凡之处显真格,这一点也没错!  比如,对旋转图像进行双线性插值,很简单吧?  可,对我,折腾了大半天,也没有达到预期效果!  尤其是三个误区让我抓瞎好久: 1,坐标旋转公式.   这东西,要用 ...

  7. 三维空间坐标的旋转算法详解_矩阵描述三维空间旋转

    本节简单介绍用矩阵来描述旋转.在二维平面上,复数无疑是描述旋转的最佳工具:然而推广到三维空间中,却要动用到"四元数"了.为了证明四元数的相关结论,我们需要三维旋转的矩阵描述.最一般 ...

  8. 机器学习算法、深度学习算法涉及的数学知识

    微积分基础 导数的定义 左导数.右导数.可导函数 导数几何意义.物理意义 基本函数求导公式 四则运算法则 复合函数求导法则 神经网络激活函数的导函数求解 高阶导数 导数与函数单调性 极值定理 导数与函 ...

  9. clark变换_电力变换器PWM原理与实践,p43页,空间矢量理解

    所看书籍:<Pulse Width Modulation for Power Converters Principles and Practice >by D. Grahame Holme ...

最新文章

  1. 超卖频发or商品滞销?压倒卖家的最后一根稻草竟是库存!
  2. HDU 1236 ( 排名 )
  3. JDK7与JDK8中HashMap的实现
  4. [BZOJ 4827][Hnoi2017]礼物
  5. linux ba 模拟,在你的 Python 游戏中模拟引力 | Linux 中国
  6. REVERSE-PRACTICE-CTFSHOW-4
  7. ipv4到ipv6的过渡
  8. 山石网科发布数据安全综合治理体系,覆盖数据全生命周期
  9. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:概述
  10. OKB持续拉升突破8美元关口
  11. java web免费案例_java web 典型项目开发案例
  12. 把图片url 伪静态 php,php url伪静态化的实现方法详解
  13. wxParse解析iframe播放视频
  14. Guitar Pro 教程之如何打开 GPX 文件
  15. 清零软件解决连供打印机喷嘴断墨和堵塞
  16. 【iphone4s/ipad2回滚ios6.1.3】file:installer.cpp; line: 71; what:_assert(teams.empty()) 报错解决方法
  17. 生活,人艰不拆,各种躺枪
  18. 小程序源码放自己服务器上,小程序源码怎么安装到自己服务器?
  19. lm2576使用注意
  20. 喜大普奔!CATIA to SuperMap 模型转换插件横空出世!

热门文章

  1. mysql五-1:单表查询
  2. gcd(欧几里得算法)
  3. Python用MySQLdb, pymssql 模块通过sshtunnel连接远程数据库
  4. InstallShield limited edition 生成单个 setup.exe 安装文件
  5. c语言程序设计王新萍课后答案,C语言程序设计教程
  6. 基于Matlab的循环码实验报告,基于MATLAB的循环码实验报告
  7. android reboot 定时重启可靠吗,请教一下有人做过安卓系统 reboot 重启之后,appium 能自动重新连接吗...
  8. 分析Java中的三种不同变量的区别
  9. Linux常用的网络命令笔记
  10. 关于 ASP.NET 内存缓存你需要知道的 10 点