algorithm - 围绕其中心旋转一个矩形?

标签 algorithm user-interface geometry processing

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

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

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

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

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

最佳答案

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

关于algorithm - 围绕其中心旋转一个矩形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16827282/

相关文章:

ios - 在3D世界ARKit中创建UIBezierPath形状

c++ - 修改递归子集求和算法

java - 在 GUI 开发中使用构建器模式时,哪些被认为是实现构建器模式的好例子?

javascript - 用 HTML/Javascript 制作 POS 软件是否可行?

user-interface - 在 Cloudera 中创建表单

c++ - 快速线路查询的数据结构?

algorithm - 如何从纯文本中提取特征?

algorithm - 如何证明 MST 上总存在一条极小极大路径

c++ - 具有开始和结束索引的最大子数组

python - 理解 "Think Python"中的 turtle 圆和弧