2012-12-25 65 views
2

我在畫布上的特定x,y,w,h處有一個圓角矩形。我首先做一個context.translate得到我想要的對象,然後當它旋轉時,這是我遇到問題的工作,需要數學。畫布關於動態點的旋轉對象

我可以做一個簡單的context.rotate(Math.PI/180 * 25)來旋轉它25degs,但它從x,y旋轉。我真的想要將旋轉點轉換爲像x +(w/2)和y +(w/2)。

我不知道如何告訴旋轉方法旋轉它圍繞不同的點。我想我必須像正常一樣旋轉它,但是可能基於旋轉重新計算x,y?

+0

我想通了。 context.translate實際上是旋轉點所在。只需要相應地調整x,y。用言語表達我的想法幫助我思考。 –

回答

0

畫布總是圍繞原點(0,0)旋轉。可以將ctx.translate命令看作是移位原點,因此如果要繞矩形的中心旋轉,則在旋轉之前必須按(x+w/2, y+h/2)進行翻譯。

(當然,翻譯回來後,或使用saverestore