沿垂直坡度滑动两点距离

时间:2017-12-18 16:19:47

标签: math geometry

对于我当前的项目,用户点击X,Y平面上的2个位置。一旦点击两个点,用户就应该单击并拖动以从原始的2个位置开始将2个新点扩展为完美的矩形(90度角)。

数学似乎非常简单,我似乎无法通过正确的配置将这两个点沿垂直斜率(一定距离)滑动。

我目前的尝试是找到垂直斜率并将其滑动X距离(用户拖动的距离),但我仍然坚持翻译perp。按距离斜坡。

enter image description here

enter image description here

1 个答案:

答案 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)
对于两个可能的换档方向,

+-