1. 程式人生 > >平面內直角座標系中座標旋轉變換公式

平面內直角座標系中座標旋轉變換公式

首先上公式:

逆時針(如下圖):
x1=xcos(β)-ysin(β);
y1=ycos(β)+xsin(β);

順時針(圖未給出):
x1=xcos(β)+ysin(β);
y1=ycos(β)-xsin(β);

其中x,y表示物體相對於旋轉點旋轉β的角度之前的座標,x1,y1表示物體旋轉β後相對於旋轉點的座標。此公式僅為在下圖座標中的變換公式,座標系的選取不同可能會有不同的結果,但是推導方式一樣,請大家注意。

下面是推導過程:

從數學上來說,此公式可以用來計算某個點繞另外一點旋轉一定角度後的座標,例如: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|,利用這點就可以使物體繞圓周運動,即旋轉物體。

另外,順時針旋轉可以理解為逆時針一個負角度,根據sin(),cos()的奇偶性,即sin(-β)=-sin(β),cos(-β)=cos(β),可得順時針旋轉的變換公式:

x1=xcos(β)+ysin(β);
y1=ycos(β)-xsin(β);