在旋转期间计算覆盖画布的矩形的最小尺寸

时间:2013-01-22 03:16:31

标签: math rotation trigonometry angle

我想知道如何计算显示层的最小尺寸,以便它总是掩盖它的画布而不管它的旋转。

下图描绘了一幅画布(黑色矩形),尺寸为 1280宽x 800高

中心对齐和居中对齐,使画布完全覆盖0度(图像1)和90度(图像2),渐变显示层已按比例从 1280宽度x 800高度调整大小(相同尺寸的画布) 2048宽x 1280高,以便原始最小长度与画布的最大长度相匹配。但是,如图3所示,使用这个基本的比例调整逻辑,某些角度不会完全覆盖画布。

如何确定渐变显示图层的最小尺寸(不会过多),以便在中心对齐和居中对齐时,无论角度如何,它都将始终覆盖画布?

enter image description here

3 个答案:

答案 0 :(得分:5)

假设您使用的是圆形而非矩形的渐变层。显然,如果圆圈的最小尺寸覆盖了画布,它可以任意旋转并仍覆盖画布。

该圆的直径是画布的对角线。您寻找的矩形是可以包含该圆的最小矩形:一个正方形,其边是圆的直径。

这为任何形状的“画布”提供了答案:你必须找到最小的圆圈,其中心位于包含整个画布的所需旋转点。

答案 1 :(得分:1)

重新发布答案:

它不会只是一个正方形,其边与黑色矩形的对角线相等吗? (或sqrt(1280 ^ 2 + 800 ^ 2))

答案 2 :(得分:-1)

屏幕的宽度必须至少大于画布的对角线,并且高度必须至少大于画布的宽度和高度的最大值:

Width = sqrt(x^2 + y^2) = sqrt(1280^2 + 800^2) = 1509.4
Height = max(x,y) = 1280

其中x是画布的宽度,y是高度