Javascript 找到两条直线的垂直线相交的点

Javascript 找到两条直线的垂直线相交的点,javascript,math,geometry,2d,line,Javascript,Math,Geometry,2d,Line,我有两条A线和B线,它们的坐标已知。 当线在绿色框内不相交时,我必须绘制每条线的垂直线。 在这里,我假设绿框是画布 我需要找到A线和B线的垂直度相交的点(x5,y5)。 还有,我应该从哪一点画垂直线,以便它们最早相遇 您的问题没有唯一的解决方案。假设线A和B不平行,则可以将它们向一个方向延伸,使它们相交,并从线A和B中找到由交点和两个端点定义的角度。找到该角度的平分线,该平分线上的每个点都将满足您的标准。如果A线和B线是平行的,那么很容易找到另一条平行于A线和B线的线,并位于它们之间的中间。这条

我有两条A线和B线,它们的坐标已知。
当线在绿色框内不相交时,我必须绘制每条线的垂直线。
在这里,我假设绿框是画布

我需要找到A线和B线的垂直度相交的点(x5,y5)。
还有,我应该从哪一点画垂直线,以便它们最早相遇


您的问题没有唯一的解决方案。假设线A和B不平行,则可以将它们向一个方向延伸,使它们相交,并从线A和B中找到由交点和两个端点定义的角度。找到该角度的平分线,该平分线上的每个点都将满足您的标准。如果A线和B线是平行的,那么很容易找到另一条平行于A线和B线的线,并位于它们之间的中间。这条线上的每一点也将符合您的标准

如果“最早相遇”是指(x5,y5)到线A和线B的距离最小,那么当线A和线B不平行时,您可以得出唯一的解决方案。(x5,y5)的唯一位置可通过以下方式确定:

1) 找到线A和线B的端点,该端点靠近交点。在您的示例中,它将是点(x2,y2)和点(x4,y4)
2) 沿垂直于直线本身的方向将这两个点投影到平分线上。在您的示例中,沿黄线方向将(x2,y2)投影到平分线上。对点(x4,y4)执行相同操作,但沿红线方向执行
3) 应在步骤(2)中找到两个投影点,距离线A和B的交点较远的点为(x5,y5)的位置
4) 从点(x5,y5)开始,应该很容易计算直线A和B上的垂直点并计算距离


当A线和B线平行时,即使使用“最小距离”标准,解决方案仍然不是唯一的。

您用哪种语言尝试过什么?您是针对特定语言提出这个问题的吗?当你说需要求(5,5)时,这是沿着垂直于线段A和线段B的直线等距的点吗?这些线保证平行吗?需要更多的细节。你们也可以在这方面做得更好。@Bartdude:我试过从每条线的中点画垂直线。但是,它们并不总是相交的。我在画布上画这个。所以使用javascript。@nchen24:是的,我在使用javascript。交点与直线的距离应相等。不,它们并不总是平行的。取垂直线的标准是直线在绿色框内不相交。@Rohith“交点与直线的距离应相等”。您可能需要将其添加到问题中。另外,如果你的直线是平行的,你几乎可以在任何你想做的地方做。我理解“另外,我应该从哪个点画垂直线,以便它们最早相遇。”因为点5和直线A和B之间的距离应该最小化。