2016-04-08 60 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