线(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
最佳答案
计算向量 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
为了使该点正确满足您的需求。