Geometry 如果我知道两个中间坐标,如何定义矩形的坐标?

Geometry 如果我知道两个中间坐标,如何定义矩形的坐标?,geometry,Geometry,黑点的坐标是已知的。矩形的宽度是10。如何定义矩形的所有坐标 通过宽度=10,我假设最短边的宽度为10。因此,其宽度的一半为5 让我们首先找到从L到R的向量,然后将其规格化为长度1,并将其拉伸为长度5。我们把这个向量称为A。A的计算公式如下:A=5*(R-L)/| R-L | 现在,A可以顺时针或逆时针旋转90度,并应用于L,分别获得S或W 同样,A可以顺时针或逆时针旋转90度,并分别应用于R、E或N 即: S=L+A*旋转(-90) W=L+A*旋转(90) E=R+A*旋转(-90) N=

黑点的坐标是已知的。矩形的宽度是10。如何定义矩形的所有坐标

通过宽度=10,我假设最短边的宽度为10。因此,其宽度的一半为5

让我们首先找到从L到R的向量,然后将其规格化为长度1,并将其拉伸为长度5。我们把这个向量称为A。A的计算公式如下:A=5*(R-L)/| R-L |

现在,A可以顺时针或逆时针旋转90度,并应用于L,分别获得S或W

同样,A可以顺时针或逆时针旋转90度,并分别应用于R、E或N

即:

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

W=L+A*旋转(90)

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

N=R+A*旋转(90)

其中,旋转(x)是逆时针旋转矢量x度的旋转矩阵,如中所定义

完整的计算:

Ax=5*(Rx-Lx)/sqrt((Rx-Lx)^2+(Ry-Ly)^2)

Ay=5*(y-Ly)/sqrt((Rx-Lx)^2+(y-Ly)^2)

S=(Lx+Ay,Ly-Ax)

W=(Lx-Ay,Ly+Ax)

E=(Rx+Ay,Ry-Ax)


N=(Rx-Ay,Ry+Ax)

让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

你可能知道角的坐标吗?是的,角的坐标