2013-11-05 54 views
1
rotating 
x' = x*Cos(angle) - y*Sin(angle) 
y' = x*Sin(angle) + y*Cos(angle) 
Scaling 
x' = x*sx 
y' = y*sy 
translate 
x' = x+tx 
y' = y+ty 

但所有的公式會做關於原點。 如果我想要做關於質心點。 (我有(Cx,Cy))。 公式會是什麼。如何旋轉/縮放/翻譯關於質心

對不起,關於英語,我會練習更多。

謝謝。

+1

要選擇一個「正確的」答案,請單擊複選標記圖標。 –

回答

1

這就是翻譯的目的。平移將原點移動到新點(更恰當地說,它建立了一個新的座標系,其原點與原始座標系中指定的點重合)。在使用仿射矩陣變換的典型圖形實現中,這個新的原點將成爲它之後執行的任何旋轉的中心。

你可以從方程中看到這一點,如果你把它們組合起來。假設我們想要放置一個圍繞點(200,200)旋轉的數字。

// translate to new origin 
x' = x + 200 
y' = y + 200 
// rotate by 90 degrees 
x'' = x'*cos(90) - y'*sin(90) 
    = x*cos(90) + 200*cos(90) - y*sin(90) - 200*sin(90) 
    = x*cos(90) - y*sin(90) + 200 
y'' = x'*sin(90) + y'*cos(90) 
    = x*sin(90) + 200*sin(90) + y*cos(90) + 200*cos(90) 
    = x*sin(90) + y*cos(90) + 200 
+0

翻譯將不同的點移動到原點,反之亦然。我在8年級的第一個平面幾何課上提到了「移動原點」(我已經做了一些圖形編程),而且我的數學老師被激怒了。 – Potatoswatter

+0

已確認。我已經添加了更精確的描述作爲括號。 –

2

翻譯使質心是原點,旋轉,翻譯回來。也就是說,如果座標爲(x,y)=(Cx,Cy)+(xr,yr),其中(x,y)是要圍繞質心旋轉的點,(Cx,Cy)是質心的座標,而(xr,yr)是點相對於質心的位置。然後您可以旋轉(xr,yr)並將其添加到Cx,Cy)

2

翻譯對象,使質心與原點重合,然後執行任何轉換,然後將其轉回。

根據您用於實現幾何的內容,您可能能夠在執行繁重工作之前線性組合這些操作。或者你的圖書館可能提供一個不變點作爲參數的操作版本,你可以爲它指定質心。

但是沒有什麼特別的關於質心而不是其他任何一點的轉換。