Java 计算与直线垂直的点
我有一条由(x1,y1)(x2,y2)指定的线L,我想计算 点的坐标,即:Java 计算与直线垂直的点,java,geometry,Java,Geometry,我有一条由(x1,y1)(x2,y2)指定的线L,我想计算 点的坐标,即: 位于与L在其长度的一半处相交的法线上 距离L有一定距离 示例: 如果直线为(x1,a)(x2,a)(水平),则为 计算点为((x2-x1)/2,D) 如果直线为(a,y1)(a,y2)(垂直),则计算出 点为(D,(y2-y1)/2) 但是我不知道如何用一种通用的方法计算所有的坐标 不考虑角度的直线(-Pi到Pi) 提前谢谢 两个点之间的中心由 ((x1+x2)/2, (y1+y2)/2) 而(非标准化的)正常
- 位于与L在其长度的一半处相交的法线上
- 距离L有一定距离
- 如果直线为(x1,a)(x2,a)(水平),则为 计算点为((x2-x1)/2,D)
- 如果直线为(a,y1)(a,y2)(垂直),则计算出 点为(D,(y2-y1)/2)
提前谢谢 两个点之间的中心由
((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)
这两个问题都满足您的要求。一个很好的问题,因为我认为它应该标记为HomeWork。如果您向我们展示您迄今为止尝试过的代码,它可能会帮助我们确定这是否是一个编程问题。