从旋转的元素中找到元素的实际高度和宽度

时间:2019-05-23 15:19:42

标签: javascript math css-transforms trigonometry

我有如下公式来获得旋转后的矩形的高度和宽度

radians = (Math.PI / 180) * degree;
x = Math.abs(Math.sin(radians)) * h + Math.abs(Math.cos(radians)) * w;
y = w * Math.abs(Math.sin(radians))  +  h * Math.abs(Math.cos(radians));

因此,x,y值是旋转后的新高度和宽度。

示例将矩形旋转到15度,高度74和宽度110是旋转后的值,我想从这些转换后的值中找出矩形的原点高度(50)和宽度(100),我需要通过上面的公式找出这个,所以我可以用不同的值代替。 Sample Image of rotated rectangle

1 个答案:

答案 0 :(得分:1)

让我们表示

what():  The following environment does not have an entry for the variable u0_0

,与s = Math.abs(Math.sin(radians)) 类似。那你就有方程系统

c=cosine

第一个乘以c,第二个乘以s

x = s * h + c * w
y = c * h + s * w

减去等式得到w

c * x = c * s * h + c * c * w
s * y = s * c * h + s * s * w

对h做类似的过程(或在第一个方程式中用h代替h表示h)

请注意,45/135/225/315度会产生简并的情况:分母为零,不可能获得真实的结果-这是基本限制,我们可以将无数个带角度的矩形刻入45成正方形(此处x = y)

w * (c * c - s * s) = c * x - s * y
w = (c * x - s * y) / (c * c - s * s)