旋转矩形并计算旋转后所需的额外空间

AHa*_*ahr 3 geometry android image-rotation

我有两个等效的矩形,彼此叠加.我们可以将它们想象为具有完全相同尺寸的图片和框架.现在我旋转图片(在它的中间),同时保持框架固定,以便图片的顶点在框架外滑动.我想计算我需要添加多少垂直和水平空间到框架,以使其足够大,以显示旋转的图片.我知道矩形旋转了多少(以度为单位),我知道矩形的尺寸.

这是一个例子(糟糕的图画,对不起).

矩形

红色和黄色线是我想要计算的长度.

所有这些的应用程序是一个Android程序,我无法旋转视图本身(由于版本问题),但我可以旋转视图内的图像.我仍然非常希望保持视图足够大以在旋转后显示图像.

谢谢.

sds*_*sds 5

让你的半边成为ab.

如果旋转alpha,矩形顶点将从(a,b)中移动到

(a*cos(alpha)-b*sin(alpha),a*sin(alpha)+b*cos(alpha))
Run Code Online (Sandbox Code Playgroud)

(这基本上就是复数乘法).

因此红线是

a*sin(alpha)+b*(cos(alpha)-1)
Run Code Online (Sandbox Code Playgroud)

而黄线则是

a*(cos(alpha)-1)+b*sin(alpha)
Run Code Online (Sandbox Code Playgroud)