math - 在Javascript中旋转后获取图像尺寸

use*_*156 0 javascript math

这都是关于数学的.遗憾的是,我忘了那些我在scool中学到的东西.

好的,我试图在Javascript中以一定角度旋转(使用画布)后得到图像尺寸.

在此输入图像描述

Pas*_*rby 10

由于我在这里没有MSPaint以外的任何工具,我会重新使用你的图片:

在此输入图像描述

假设你的原始矩形的大小是R(ectangle)W(宽度)*RH(八),

在这种情况下RW=200,RH=80;

旋转一定角度A后,逆时针旋转,

其中0deg <= A <= 90deg以度(或0 <= A <= Math.PI/2弧度),

在这种情况下A=30degA=Math.PI/6,

在新的"外部"矩形中,每一面被两部分分开(为了便于描述;对应于图像).

在左侧,假设上部(紫色)部分称为N(ew)H(八个)U(p),下部(红色)部分称为NHL(ow);

底部的规则相同,我们有NW(宽)L(eft)(蓝色)和NWR(ight)(橙色).

所以新矩形的大小(面积)将是 (NHU + NHL) * (NWL + NWR)

根据定义sincos:

NWL = RW * Math.cos(A); //where A is in radians
NHL = RW * Math.sin(A);

NHU = RH * Math.cos(A);
NWR = RH * Math.sin(A);
Run Code Online (Sandbox Code Playgroud)

(如果你使用A的程度,更换AMath.PI*A/180).

因此,新的"外部"宽度将是NWL + NWR,并且新的"外部"高度将是NHU + NHL,现在您可以计算所有内容.