计算一条直线的垂线所在点的法向量

4

我有一条由 (x1,y1)(x2,y2) 确定的线L,想要计算以下坐标:

  • 位于法线上,该法线在L的中点处与L相交
  • 离L固定距离D

举例:

  • 如果该直线为 (x1,a)(x2,a)(水平线),则计算出的点坐标为 ((x2-x1)/2,D)。
  • 如果该直线为 (a,y1)(a,y2)(垂直线),则计算出的点坐标为 (D, (y2-y1)/2)。

但是我不知道如何以通用的方式计算所有角度(-Pi到Pi)的线的坐标。

提前谢谢!


6
好的,我们开始翻译。需要翻译的内容为:“A good question for http://math.stackexchange.com/”。 - S.Lott
1
我认为它应该被标记为家庭作业。 - Carlos Valenzuela
如果您展示一下您已经尝试过的代码,那么这有助于我们决定这是否是一个编程问题。 - Bill the Lizard
1个回答

8
两点间的中心点可以通过以下公式计算:
((x1+x2)/2, (y1+y2)/2)

虽然(未经归一化的)法线是

(-(y2-y1), (x2-x1))

如果我们对这个向量进行归一化,得到的结果如下:

(-(y2-y1), (x2-x1)) / sqrt((x2-x1)^2+(y2-y1)^2)

如果我们将两者结合起来,我们就可以找到这两个点。
((x1+x2)/2, (y1+y2)/2) +- D * (-(y2-y1), (x2-x1)) / sqrt((x2-x1)^2+(y2-y1)^2)

这两个都满足您的需求。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接