如何计算垂直线的坐标?

vas*_*111 3 geometry 2d computational-geometry

线(x1,y1),(x2,y2)和(x3,y3),(x4,y4)是垂直的.我有点(x1,y1),(x2,y2),(x3,y3)的坐标和线(x3,y3),(x4,y4)的像素长度.我需要找到点(x4,y4)的坐标.请给我一个伪代码来计算(x4,y4).谢谢你提前.

图片

解决了.多亏了数学家1975

x1 = 200  
y1 = 400  
x2 = 700  
y2 = 200  
dist = 20  

x3 = (x1 + x2) / 2  
y3 = (y1 + y2) / 2  

a = y1 - y2  
b = x2 - x1  

norm = sqrt(a*a + b*b)  
a = a / norm  
b = b / norm  

x4 = x3 + a * dist  
y4 = y3 + b * dist
Run Code Online (Sandbox Code Playgroud)

mat*_*975 7

计算向量A在哪里

 A = (x2 - x1,y2 - y1)
Run Code Online (Sandbox Code Playgroud)

垂直于此的矢量由下式给出

 B = (y1 - y2, x2 - x1)
Run Code Online (Sandbox Code Playgroud)

找到归一化的向量

 C = B/|B|
Run Code Online (Sandbox Code Playgroud)

其中|B|只是B使用毕达哥拉斯计算的矢量模数

您的观点(x4,y4)将作为

 (x4,y4) = (x3,y3) + K*C
Run Code Online (Sandbox Code Playgroud)

其中,K为线的长度(x3,y3)(x4,y4)(你在,你知道这个问题说了).根据您的点的方向,您可能需要将K的值设置为

 K = -K 
Run Code Online (Sandbox Code Playgroud)

为了使要点符合您的需要.