座標旋轉原理

2021-06-20 17:53:12 字數 938 閱讀 4471

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

座標點旋轉

座標上的一點繞原點 任意一點 旋轉,為了實現這個功能在網上找了好久,找到的答案都是這個公式 newx cos angle x sin angle y newy cos angle y sin angle x 但是按照這個公式旋轉的座標點有問題,不知道是不是 自己沒搞清楚,還是 搞出了問題。後來無意間...

點旋轉和座標系旋轉

同一座標系下的點旋轉變換 如圖1所示 和不同座標系之間的旋轉變換 如圖2所示 一直困擾著我,它們是兩個不同的概念,但形式上有很相似,以二維空間為例做了下推導,加深理解。同一座標系下的點旋轉變換,比較好理解,是在相同的座標系下做的旋轉變換。如圖3所示,已知逆時針的旋轉角度為 我們引入中間變數向量的長度...

點旋轉和座標系旋轉

同一座標系下的點旋轉變換 如圖1所示 和不同座標系之間的旋轉變換 如圖2所示 一直困擾著我,它們是兩個不同的概念,但形式上有很相似,以二維空間為例做了下推導,加深理解。同一座標系下的點旋轉變換,比較好理解,是在相同的座標系下做的旋轉變換。如圖3所示,已知逆時針的旋轉角度為 我們引入中間變數向量的長度...