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...