gpt4 book ai didi

java - 计算垂直于直线的点

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:17:01 25 4
gpt4 key购买 nike

我有一条由 (x1,y1)(x2,y2) 指定的线 L 并且想要计算点的坐标是:

  • 位于与 L 的一半长度相交的法线上
  • 距离L一定距离D

例子:

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

但我不知道如何以通用方式为所有人计算坐标线与角度无关(-Pi 到 Pi)。

提前致谢!

最佳答案

两点之间的中心由下式给出

((x1+x2)/2, (y1+y2)/2)

而(未归一化的)法线是

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

如果我们对这个 vector 进行归一化,我们会得到

(-(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)

两者都满足您的要求。

关于java - 计算垂直于直线的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5224444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com