1

我想单击并拖动矩形的一个角,并使矩形围绕其中心旋转。

使用正方形很容易做到这一点:

rot = PI * 3 / 4 + atan2( (centerY - mouseY), (centerX - mouseX) );

但是如果我想旋转一个矩形,我不确定如何处理偏移量以使鼠标移动时旋转平滑。

在这个 jsfiddle 示例 http://jsfiddle.net/R4QpV/中,单击红色角可以让您围绕正方形的中心旋转。但是如果你点击绿色角落,会有一个跳跃。如何使拖动绿色角平滑并像单击正方形角时一样跟随鼠标?

4

1 回答 1

0

对于正方形,对角线沿您所拥有的角度PI / 4(或3*PI/4)。对于矩形,您需要根据对角线的角度设置旋转。我不确定你的坐标系到底是什么,但你应该PI * 3 / 4用类似的东西替换atan2(centerY - cornerY, centerX - cornerX)(给或取一个 +/- 符号)。

于 2013-05-30T03:15:21.580 回答