对于我当前的项目,用户点击X,Y平面上的2个位置。一旦点击两个点,用户就应该单击并拖动以从原始的2个位置开始将2个新点扩展为完美的矩形(90度角)。
数学似乎非常简单,我似乎无法通过正确的配置将这两个点沿垂直斜率(一定距离)滑动。
我目前的尝试是找到垂直斜率并将其滑动X距离(用户拖动的距离),但我仍然坚持翻译perp。按距离斜坡。
答案 0 :(得分:1)
你有点A和B.差异向量
D = (Dx, Dy) = (Bx - Ax, By - Ay)
归一化(单位)向量
Len = Sqrt(Dx*Dx + Dy*Dy)
(dx, dy) = (Dx / Len, Dy / Len)
垂直单位矢量
(px, py) = (-dy, dx)
按距离L移位
pL = (px * L, py * L)
因此,移位A将具有坐标
(a'x, a'y) = (Ax +/- px * L, Bx +/- py * L)
对于两个可能的换档方向, +
或-