座標旋轉原理

推導座標旋轉公式

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章