当前位置: 首页 > 知识库问答 >
问题:

从旋转的图元中查找图元的实际高度和宽度

田玉韵
2023-03-14

我有一个公式来获得旋转矩形的高度和宽度,如下所示:

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),我需要通过公式找出这个像上面一样,所以我可以用不同的值替换。旋转矩形的示例图像

共有1个答案

西门建安
2023-03-14

让我们表示

s = Math.abs(Math.sin(radians))

并且对于<code>c=余弦</code>类似。然后你有一个方程组

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

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

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

并减去方程式得到w

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

对h执行类似的过程(或在第一个方程中用w替换h)

请注意,45/135/225/315度产生退化情况:分母为零,不可能得到真正的结果 - 这是基本限制,我们可以将无穷多个角度为45的矩形刻成正方形(这里的x=y)

w = ((c * rot_w) - (s * rot_h)) / (c * c - s * s);
h = ((c * rot_h) - (s * rot_w)) / (c * c - s * s);
 类似资料:
  • 问题内容: 假设我希望在浏览器的显示(视口)中居中。为此,我需要计算元素的宽度和高度。 我应该使用什么?请提供有关浏览器兼容性的信息。 问题答案: 您应该使用和属性。请注意,它们属于元素,而不属于。 执行CSS转换后,函数将元素的尺寸和位置作为浮点数返回。

  • 问题内容: 假设我希望在浏览器的显示(视口)中居中。为此,我需要计算元素的宽度和高度。 我应该使用什么?请提供有关浏览器兼容性的信息。 问题答案: 您应该使用和属性。请注意,它们属于元素,而不属于。 执行CSS转换后,函数将元素的尺寸和位置作为浮点数返回。

  • 本文向大家介绍js获取Html元素的实际宽度高度的方法,包括了js获取Html元素的实际宽度高度的方法的使用技巧和注意事项,需要的朋友参考一下 第一种情况就是宽高都写在样式表里,就比如#div1{width:120px;}。这中情况通过#div1.style.width拿不到宽度,而通过#div1.offsetWidth才可以获取到宽度。 第二种情况就是宽和高是写在行内中,比如style="wid

  • 问题内容: 我正在创建一个jQuery插件。 如何在Safari中使用Javascript获得真实的图像宽度和高度? 以下适用于Firefox 3,IE7和Opera 9: 但是在Webkit浏览器中,例如Safari和Google Chrome的值为0。 问题答案: Webkit浏览器在加载图像后设置height和width属性。建议不要使用超时,而建议使用图像的onload事件。这是一个简单的

  • 问题内容: 我使用的是jQuery(v1.7.1),我需要获取元素的绝对浮点宽度,但是jQuery的所有width方法似乎都舍入了width的值。 例如,如果元素的实际宽度为,则jQuery的width方法返回,即忽略十进制值。 因此,我的问题是:如何获取元素宽度的浮点值? 问题答案: 如果您已经有对DOM元素的引用,将为您提供所需的值。 该方法自Internet Explorer 4起就存在,因

  • 我想在ImageView上设置动态图像,但覆盖表面视图,并执行一些基本的图像编辑操作,如缩放、旋转和转换。现在,当我在横向模式下使用屏幕旋转旋转ImageView时,它需要竖屏的高度和宽度。我将我的活动锁定在竖屏中。