Javascript 画布围绕动态点旋转对象

Javascript 画布围绕动态点旋转对象,javascript,html,rotation,html5-canvas,Javascript,Html,Rotation,Html5 Canvas,我在画布上特定的x,y,w,h有一个圆角矩形。我首先做一个context.translate来得到我想要的对象,然后当涉及到旋转它时,这就是我在计算所需数学时遇到的问题 我可以做一个简单的上下文。旋转(Math.PI/180*25)将其旋转25度,但它从x,y旋转。我真的想把旋转点移到像x+(w/2)和y+(w/2) 我不知道如何告诉rotate方法围绕不同的点旋转它。我想我必须像正常情况一样旋转它,但可能基于旋转重新计算x,y?画布始终围绕原点(0,0)旋转。可以将ctx.translate命

我在画布上特定的x,y,w,h有一个圆角矩形。我首先做一个context.translate来得到我想要的对象,然后当涉及到旋转它时,这就是我在计算所需数学时遇到的问题

我可以做一个简单的上下文。旋转(Math.PI/180*25)将其旋转25度,但它从x,y旋转。我真的想把旋转点移到像x+(w/2)和y+(w/2)


我不知道如何告诉rotate方法围绕不同的点旋转它。我想我必须像正常情况一样旋转它,但可能基于旋转重新计算x,y?

画布始终围绕原点(0,0)旋转。可以将
ctx.translate
命令视为移动原点,因此,如果希望围绕矩形中心旋转,则必须在旋转之前进行
(x+w/2,y+h/2)
平移


(当然,之后再翻译回来,或者使用
save
restore

我找到了答案。context.translate实际上就是旋转点所在的位置。只是需要相应地调整x,y。说出我的想法有助于我把它想清楚。