2016-04-08 62 views

回答

0

enter image description here

通过宽度= 10,I假设最短侧具有半10其宽度的宽度因此5.

让我们首先找到从L-去矢量到R,然后将其归一化为长度为1,并将其拉伸至长度5.让我们调用这个向量A。A可以计算如下:A = 5 *(RL)/ | RL |。

现在,A可以顺时针或逆时针旋转90度并应用于L,分别获得S或W.以相同的方式,A可以顺时针或逆时针旋转90度,并分别施加到R,以bot E E或N。

即:

S = L + A *旋转(-90)

W = L + A *旋转(90)

E = R + A *旋转(-90 )

N = R + A *旋转(90)

其中旋转(x)是旋转矩阵为一个矢量x度逆时针旋转,如在https://en.wikipedia.org/wiki/Rotation_matrix

定义个

完整计算:

斧= 5 *(RX-LX)/ SQRT((RX-LX)^ 2 +(RY-LY)^ 2)

ΔY= 5 *(Ry- LY)/ SQRT((RX-LX)^ 2 +(RY-LY)^ 2)

S =(LX + Ay的,LY - 斧)

W =(LX - 哎,LY +斧)

E =(Rx + Ay,Ry-Ax)

N =(Rx-Ay,Ry + Ax)

0

让我们M0,M1是黑点。

//vector M0-M1 
mx = M1.X - M0.X 
my = M1.Y - M0.Y 

//perpendicular vector 
px = - my 
py = mx 

//it's length 
lp =Sqrt(px*px + py*py) 

//unit perp. vector 
upx = px/lp 
upy = py/lp 

//vertices 
V1.x = M0.X + 5 * upx 
V1.y = M0.Y + 5 * upy 
V2.x = M0.X - 5 * upx 
V2.y = M0.Y - 5 * upy 
//the same for M1 and V3, V4