我有如下公式来获得旋转后的矩形的高度和宽度
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
答案 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)