推導座標旋轉公式

2021-06-19 15:24:47 字數 1401 閱讀 2554

1圍繞原點的旋轉

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

以上**

2.座標系的旋轉

在原座標系xoy中,  繞原點沿逆時針方向旋轉theta度, 變成座標系 sot。

設有某點p,在原座標系中的座標為 (x, y), 旋轉後的新座標為(s, t)。

綜合(2.1),(2.2) 2式

s =  os =oa + as = x cos(theta) + y sin(theta)

t =  ot =ay – ab = y cos(theta) – x sin(theta)

用行列式表達如下

推導座標旋轉公式

在 flash actionscript 3.0 動畫教程 一書中有乙個旋轉公式 x1 cos angle x sin angle y y1 cos angle y sin angle x 其中x,y表示物體相對於旋轉點旋轉angle的角度之前的座標,x1,y1表示物體旋轉angle後相對於旋轉點的...

推導座標旋轉公式

在 flash actionscript 3.0 動畫教程 一書中有乙個旋轉公式 x1 cos angle x sin angle y y1 cos angle y sin angle x 其中x,y表示物體相對於旋轉點旋轉angle的角度之前的座標,x1,y1表示物體旋轉angle後相對於旋轉點的...

推導座標旋轉公式

推導座標旋轉公式 在 flash actionscript 3.0 動畫教程 一書中有乙個旋轉公式 x1 cos angle x sin angle y y1 cos angle y sin angle x 其中x,y表示物體相對於旋轉點旋轉angle的角度之前的座標,x1,y1表示物體旋轉angl...