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=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)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=
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
你可能知道角的坐标吗?是的,角的坐标