线(x1,y1),(x2,y2)和(x3,y3),(x4,y4)是垂直的。我有点(x1,y1),(x2,y2),(x3,y3)的坐标和线(x3,y3),(x4,y4)的像素长度。我需要找到点(x4,y4)的坐标。请给我一个伪代码来计算(x4,y4)。谢谢你提前。
解决。感谢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
答案 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
为了使这一点符合您的需要。