我想点击并拖动一个矩形的一角,让矩形围绕它的中心旋转。
使用正方形非常容易:
rot = PI * 3 / 4 + atan2( (centerY - mouseY), (centerX - mouseX) );
但是如果我想旋转一个矩形,我不知道如何处理偏移以使旋转平滑移动鼠标。
在这个jsfiddle示例http://jsfiddle.net/R4QpV/中,单击红色角可以围绕正方形的中心旋转。但是,如果你点击绿色角落,那就有一个跳跃。如何使绿色角落平滑并按下鼠标,就像点击方形角一样?
答案 0 :(得分:0)
使用正方形,对角线沿着角度PI / 4
(或3*PI/4
)。对于矩形,您需要根据对角线的角度设置旋转。我不确定您的坐标系是什么,但您应该用PI * 3 / 4
替换atan2(centerY - cornerY, centerX - cornerX)
(给出或取+/-符号)。