如何计算垂直线的坐标?

时间:2014-01-02 19:25:18

标签: 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)。谢谢你提前。

picture

解决。感谢mathematician1975

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

1 个答案:

答案 0 :(得分:5)

计算向量A,其中

 A = (x2 - x1,y2 - y1)

与此垂直的向量由

给出
 B = (y1 - y2, x2 - x1)

找到规范化的向量

 C = B/|B|

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

您的观点(x4,y4)将以

的形式发出
 (x4,y4) = (x3,y3) + K*C

其中K是行(x3,y3)(x4,y4)的长度(您在问题中说明了这一点)。根据您的点的方向,您可能需要将K的值设置为

 K = -K 

为了使这一点符合您的需要。