垂直于给定线的绘制线

Viv*_*mar 2 c++ mfc visual-c++

我有一条线的起点和终点坐标.我想在此末尾画出另一条线,使它们彼此垂直.

我试图使用普通几何体来做到这一点.MFC中是否存在任何高级API.

谢谢

Dar*_*enW 6

如果(dx,dy)是给定线的x和y坐标的差异,则可以通过设计其坐标差异(-dy,dx)来使另一条线垂直.您可以通过任何因子(-c*dy,c*dx)来缩放它以更改其长度.


Ask*_*ica 6

您已有一条从 (x1, y1) 到 (x2, y2) 的线。垂直线是 (a1, b1) 到 (a2, b2),并以 (x2, y2) 为中心。

xdif = x2 - x1
ydif = y2 - y1
a1 = x2 - ydif / 2
b1 = y2 + xdif / 2
a2 = x2 + ydif / 2
b2 = y2 - xdif / 2
Run Code Online (Sandbox Code Playgroud)

我认为这可行......我测试了几行。

因此,如果有一条从 (1,1) 到 (5,3) 的线,则垂直线将是 (5 - 2/2, 3+4/2) 到 (5 + 2/2, 3 - 4/ 2) 或 (4,5) 至 (6, 1)。