计算旋转中的x,y坐标

时间:2020-04-01 04:09:59

标签: javascript math

我正在使用视频编辑设计工具。我最近添加了旋转功能,我的X,Y坐标现已关闭。

在1080x1080的画板上,我有一个对象,例如,缘故690px x 891px。当该对象与左侧齐平时,其X值应为0。

现在,如果我将其顺时针旋转30度。该框将在左边缘现在低于0的位置进行变换。如果将其拖动到上方,我希望能够对其进行计算,以便当其旋转形式的左边缘接触到画板的左平面时为0。

我正在开发的应用的屏幕截图演示 enter image description here

我尝试了其他公式,但不是100%理解它们,甚至不能确定它们是否适用于我要解决的问题。

摘要:寻找对象旋转时的x,y坐标。在下面的屏幕截图中,x坐标应为0。

尺寸在屏幕截图中。我还是把它们列出来。

x = 195 y = 117 w = 690 h = 891 旋转= 30 画板W = 1080 artboardH = 1080

基于这些尺寸,如何在1080 x 1080的盒子内以30度旋转使x变为0?

干杯!

1 个答案:

答案 0 :(得分:0)

这似乎是一个简单的三角问题...

    const rads = (Math.PI * 2) / bars;

    const x = centerX + Math.cos(rads * i) * fooRadius
    const y = centerY + Math.sin(rads * i) * fooRadius

我看过你在其他地方应用它:
https://codesandbox.io/s/hungry-tereshkova-1pf0c?runonclick=1&file=/src/Visualizer.js:2473-2646

我在问题描述中没有看到的是关键点,
这是解决此问题的关键,是的,您是rotation = 30,但从哪里来的?

如果旋转后在一个角上旋转枢轴点,则该角不会改变位置...
您需要做的就是计算旋转之前要旋转的距离,这就是我们的半径。
重用方程式,冲洗并重复一遍。

也许此图可以更好地说明枢轴的作用: