Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 计算旋转期间覆盖画布的矩形的最小大小_Math_Rotation_Trigonometry_Angle - Fatal编程技术网

Math 计算旋转期间覆盖画布的矩形的最小大小

Math 计算旋转期间覆盖画布的矩形的最小大小,math,rotation,trigonometry,angle,Math,Rotation,Trigonometry,Angle,我想知道如何计算一个显示层的最小尺寸,这样无论它的旋转如何,它都会覆盖住它的画布 下图描绘了一幅画布(黑色矩形),尺寸为1280宽x 800高 居中对齐并居中对齐,以便画布在0度(图1)和90度(图2)完全覆盖,渐变显示层的大小已按比例从1280宽x 800高(画布大小相同)调整为2048宽x 1280高,使原始最小长度与画布的最大长度相匹配。但是,如图3所示,使用这种基本的比例调整逻辑,某些角度将无法完全覆盖画布 如何确定渐变显示层的最小大小(无多余),以便在其居中对齐和居中注册时,无论其角度

我想知道如何计算一个显示层的最小尺寸,这样无论它的旋转如何,它都会覆盖住它的画布

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

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

如何确定渐变显示层的最小大小(无多余),以便在其居中对齐和居中注册时,无论其角度如何,始终覆盖画布


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

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

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

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

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

其中x是画布的宽度,y是高度,作为答案重新发布:


它不是一个边长等于黑色矩形对角线的正方形吗?(或sqrt(1280^2+800^2))

作为答案重新发布:


它不是一个边长等于黑色矩形对角线的正方形吗?(或sqrt(1280^2+800^2))

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

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


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

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

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


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

难道不是一个边长等于黑色矩形对角线的正方形吗?(或sqrt(1280^2+800^2))啊,这么简单。谢谢蒂莫西。请加上这个作为答案,这样我就可以把它标记为正确的。它不是一个边长等于黑色矩形对角线的正方形吗?(或sqrt(1280^2+800^2))啊,这么简单。谢谢蒂莫西。请加上这个作为答案,这样我可以把它标记为正确的。好的,假设x是3,y是4。所以宽度是5,高度是4。你是说一个与3x4矩形同心的4x5矩形可以围绕中心点旋转,并且始终覆盖3x4矩形?试着在画纸上画出这样的矩形,然后把它们相互旋转,看看会发生什么。好的,假设x是3,y是4。所以宽度是5,高度是4。你是说一个与3x4矩形同心的4x5矩形可以围绕中心点旋转,并且始终覆盖3x4矩形?试着在绘图纸上画出这样的矩形,然后将它们相互旋转,看看会发生什么。