2013-09-30 89 views
0

我正在使用旋轉來旋轉一個矩形,我在屏幕上顯示一個角度爲 θ°。我的矩形頂點的矩陣是:使用圍繞不同原點的旋轉矩陣旋轉對象? (java)

my rectangle matrix of vertices

其中第一列是x值,第二列是y值。我加載像這樣的頂點:bottomLeft(2,4),topLeft(2,5),topRight(3,5),最後bottomRight(3,4)

接下來,我乘這對旋轉矩陣:

rotation matrix

最後一次計算完成後,我得到了一組新的頂點:

new set of vertices

這是偉大的,除了一個問題之外,它都圍繞着(0,0)的中心點旋轉。我希望它圍繞我的bottomLeft頂點(2,4)(這個矩形的矩陣中的第一個頂點)旋轉。我如何去做這件事?我需要做些什麼才能將它旋轉到我的bottomLeft頂點(基本上將(0,0)的中心點更改爲(2,4)作爲我的中心)?

回答

1

所有旋轉都將圍繞原點完成,因此您必須將矩形移至原點,旋轉原點,然後將其移回原點。

如果使用Affine Transforms你可以做所有這三個與矩陣乘法,你可以有做所有三個操作一次一個矩陣。如果你的旋轉矩陣必須保持2×2,那麼你必須手動進行翻譯(即移動)。

This answer顯示瞭如何組合點旋轉的變換。

+0

謝謝,我沒有你所說的話,我把它移動到原點,旋轉並移動回來。工作得很好。生病也要看仿射變換。再次感謝 –