从任意点旋转矩形
Rotating a Rectangle from any point
我正试图在虚拟桌面程序的API中编写脚本(javascript),以便我可以操纵一些令牌(汽车战争:))。
我正在寻找答案,但我似乎在挣扎,重新发明轮子,所以我想我应该寻求帮助。我感到困惑的一个原因是程序返回的结果是基于+y是向下的,而Deg是顺时针的,这与所有三角公式想要的(逆时针和+y是向上的)不同。这是我可以访问的内容。矩形围绕中心旋转,中心点(x,y),宽度,高度和旋转。我已经得到了在旋转方向上移动矩形的代码,从一边到另一边,上下等。现在我需要能够围绕四个角中的任何一个或任何点旋转它,但四个角就足够了。
它不会让我包括一个图像,因为我是新来的,所以我希望描述足够好。我做了一张图片。(
在API中,我不能实际绘制矩形,我只能设置它的旋转和中心值。所以我的想法是,如果我能找到当前一个角的x,y,然后围绕中心旋转所需的角度(我可以通过设置矩形旋转轻松地做到这一点),找到同一个角的新x,y。然后我将知道偏移量并将其应用于中心(这也是矩形移动的方式)。
所以我需要能够求出矩形的任意角在任意给定的起始角处的x,y,然后再在其中心旋转一个新角度。这个偏移量可以很容易地应用到中心x,y,矩形会看到已经沿着它的一个角旋转。
谢谢你能给的任何帮助。我希望我最终能弄清楚,只是把这个描述写出来实际上帮助我把它想清楚了。但我现在被困住了!
康拉德
在2d中围绕任意点(例如矩形的四个角之一)旋转的技巧是首先平移形状的顶点,以便您想要旋转的点位于原点(即0,0)。
要实现这一点:
1. 用(-x, -y)平移矩形
2. 旋转您的矩形所需的角度。
3.把你的矩形平移(x, y),使它回到原来的位置。
式中(x,y)为待旋转点的x/y坐标
您可以使用负角度来调整顺时针旋转。
在网上有很多关于这个的信息,例如:http://www.siggraph.org/education/materials/HyperGraph/modeling/mod_tran/2drota.htm相关文章:
- 多点触摸平移缩放在javascript中同时旋转
- 我需要使用kineticjs点击事件以任何所需的角度旋转画布中的文本
- 下划线用句点扩展.旋转引号被删除,如何用引号获得它
- Javascript或Jquery获取事件任意按钮点击
- 点击 旋转量角器.
- Box2d 从旋转的主体中获取形状点
- CSS3 点击旋转和缩放
- 如何旋转相机,使其面向/高于球体上的点(Three.js)
- 逐渐旋转对象使其面向某个点
- 使旋转的中心点在中心
- 如何检查鼠标点击是否位于JavaScript中HTML5画布上的旋转文本内
- 如何使用Protractor/Senium将鼠标移动到任意点
- flexislider无法在现场工作,图像没有旋转,但导航点正在改变
- 如何在Javascript中移动元素的旋转点
- count'最后一个孩子'从javascript对象/数组结构中的任意点
- 围绕任意点旋转:HTML5画布
- 在IE8+中旋转可点击元素
- 从任意点旋转矩形
- 旋转,点击Javascript
- 在HTML画布中旋转一个点