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))。 公式會是什麼。如何旋轉/縮放/翻譯關於質心
對不起,關於英語,我會練習更多。
謝謝。
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))。 公式會是什麼。如何旋轉/縮放/翻譯關於質心
對不起,關於英語,我會練習更多。
謝謝。
這就是翻譯的目的。平移將原點移動到新點(更恰當地說,它建立了一個新的座標系,其原點與原始座標系中指定的點重合)。在使用仿射矩陣變換的典型圖形實現中,這個新的原點將成爲它之後執行的任何旋轉的中心。
你可以從方程中看到這一點,如果你把它們組合起來。假設我們想要放置一個圍繞點(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
翻譯將不同的點移動到原點,反之亦然。我在8年級的第一個平面幾何課上提到了「移動原點」(我已經做了一些圖形編程),而且我的數學老師被激怒了。 – Potatoswatter
已確認。我已經添加了更精確的描述作爲括號。 –
翻譯使質心是原點,旋轉,翻譯回來。也就是說,如果座標爲(x,y)=(Cx,Cy)+(xr,yr)
,其中(x,y)
是要圍繞質心旋轉的點,(Cx,Cy)
是質心的座標,而(xr,yr)
是點相對於質心的位置。然後您可以旋轉(xr,yr)
並將其添加到Cx,Cy)
。
翻譯對象,使質心與原點重合,然後執行任何轉換,然後將其轉回。
根據您用於實現幾何的內容,您可能能夠在執行繁重工作之前線性組合這些操作。或者你的圖書館可能提供一個不變點作爲參數的操作版本,你可以爲它指定質心。
但是沒有什麼特別的關於質心而不是其他任何一點的轉換。
要選擇一個「正確的」答案,請單擊複選標記圖標。 –