推導座標旋轉公式

zhuanzi:http://www.cnblogs.com/ywxgod/archive/2010/08/06/1793609.html html

 

在《Flash actionScript 3.0 動畫教程》一書中有一個旋轉公式: 函數

x1=cos(angle)*x-sin(angle)*y; 動畫

y1=cos(angle)*y+sin(angle)*x; htm

其中x,y表示物體相對於旋轉點旋轉angle的角度以前的座標,x1,y1表示物體旋轉angle後相對於旋轉點的座標 blog

從數學上來講,此公式能夠用來計算某個點繞另一點旋轉必定角度後的座標,例如:A(x,y)繞B(a,b)旋轉β度後的位置爲C(c,d),則x,y,a,b,β,c,d有以下關係式: 教程

1。設A點旋轉前的角度爲δ,則旋轉(逆時針)到C點后角度爲δ+β ip

2。求A,B兩點的距離:dist1=|AB|=y/sin(δ)=x/cos(δ) get

3。求C,B兩點的距離:dist2=|CB|=d/sin(δ+β)=c/cos(δ+β) 數學

4。顯然dist1=dist2,設dist1=r因此: it

  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|,利用這點就能夠使物體繞圓周運動,即旋轉物體。

相關文章
相關標籤/搜索