2012-11-30 46 views

回答

7

因为我并不比其他MSPAINT任何工具,在这里,我要再次使用你的形象:

enter image description here

说你原来的矩形的大小是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(8)U(P)和下(红色)部分被称为非霍奇金淋巴瘤(OW);在底侧

的规则相同,我们有NW(IDþ)L(EFT)(蓝色)和NWR(飞行)(橙色)。

所以新矩形的大小(面积)是(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); 

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

所以新的“外部”宽度将是NWL + NWR,新的“外部”高度将是NHU + NHL,现在您可以计算所有内容。

+0

非常感谢您的详细解答。错字:NWR应该是** RH ** * Math.sin(A); – user1643156

+0

@ user1643156糟糕,修正了,谢谢! – Passerby