2013-01-22 95 views
0

期间,我想知道如何计算显示层的最小尺寸,使其始终掩盖它的画布,无论它的旋转。计算最小矩形的大小,以覆盖画布旋转

下图描绘了尺寸为1280宽度x 800高度的画布(黑色矩形)。

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

如何确定用于梯度显示层的最小尺寸(无过量),这样,当它的中心对齐和中心注册的,不管它是角度,它将始终覆盖印刷品吗?

enter image description here

+1

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

+0

啊,这么简单。谢谢蒂莫西。请将此添加为答案,以便我可以将其标记为正确。 – TheDarkIn1978

回答

1

重新张贴作为一个答案:

岂不只是一个正方形的边等于黑色矩形的对角线? (或SQRT(1280^2 + 800^2))

-1

屏幕的宽度必须至少较大则对角线的帆布,并且高度必须至少更大则最大的画布的宽度和高度的:

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

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

+1

OK,假设x是3,y是4,所以宽度为5,高度为4。你告诉我,一个4x5的矩形同心同一个3x4的长方形可绕圆心旋转,并始终覆盖3x4的矩形?尝试在方格纸上绘制这样的矩形,然后将它们转过来看看会发生什么。 –

4

假设你具有圆形正在做它,而不是长方形,gradiant层。很明显,如果圆圈的最小尺寸覆盖在画布上,它可以任意旋转并仍然覆盖画布。

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

这给出了的任何“帆布”的形状的答案:您只需找到中心位于包含整个画布的所需旋转点的最小圆。

+0

啊,是的!好点子! – TheDarkIn1978