我在窗口中画了一条线,然后让用户拖动它。因此,我的线由两个点定义:(x1,y1)和(x2,y2)。但是现在我想在行尾绘制“盖帽”,也就是在每个端点处绘制短垂直线。上限的长度应为N个像素。
因此,要在端点(x1,y1)处绘制“帽”线,我需要找到两个形成一条垂直线的点,并且其每个点都离该点(x1,y1)N / 2像素。
那么,如何计算点(x3,y3),使其与已知线的终点(x1,y1)相距垂直距离N / 2,即由(x1,y1)和(x2,y2)?
您需要计算与线段垂直的单位矢量。避免计算斜率,因为这会导致除以零误差。
dx = x1-x2 dy = y1-y2 dist = sqrt(dx*dx + dy*dy) dx /= dist dy /= dist x3 = x1 + (N/2)*dy y3 = y1 - (N/2)*dx x4 = x1 - (N/2)*dy y4 = y1 + (N/2)*dx