求点到线段的距离、垂足、最近点

直线方程
  • 直线的一般式方程: Ax + By + C = 0
    平行于x轴时,A=0,C≠0;
    平行于y轴时,B=0,C≠0;
    与x轴重合时,A=0,C=0;
    与y轴重合时,B=0,C=0;
    过原点时,C=0;
    与x、y轴都相交时,A*B≠0。
  • 直线的点斜式方程:y - y0 = k( x - x0 ) 也就是 y = k( x - x0 ) + y0
    k为斜率,(x0,y0)为直线上一点
  • 直线的斜截式方程: y = kx + b =- (A/B)y - (C/B)
    斜率:k = -A/B
    设(x1,y1),(x2,y2)为直线上的两点,则
    斜率:k = tanα =(y2-y1)/(x2-x1)或(y1-y2)/(x1-x2)
    代表由直线与右边X轴所成的角的正切,α 为其夹角
垂足公式
  • 已知直线一般式方程时:
    设已知直线外一点坐标为(x0,y0),垂足坐标为(x,y),因为垂线与直线垂直,垂线斜率为k的负倒数,则可得方程:
    { Ax + By + C = 0;
    { (y - y0) / (x - x0) = B / A;
    解方程可得:
    x = ( B*B*x0 - A*B*y0 - A*C ) / ( A*A + B*B )
    y = ( -A*B*x0 + A*A*y0 - B*C ) / ( A*A + B*B )

  • 已知线段端点时:
    设已知直线外一点坐标为p0(x0,y0),垂足坐标为(x,y),两端点为p1(x1,y1)和p2(x2,y2)
    则直线斜率为:k1 = ( y2 - y1 ) / (x2 - x1 )
    该直线方程为:y = k1 * ( x - x1 ) + y1
    其垂线斜率为:k2 = -1 / k1,
    其垂线方程为:y = k2 * (x-x0) + y0 = k2 * ( x - x0 ) + y = (-1/k1) * (x - x0) + y0
    联立两直线方程,也就是求交点,解得:
    x = ( k1^2 * x1 + k1 * ( y0 - y1 ) + x0 ) / ( k1^2 + 1)
    y = k1 * ( x - x1) + y1

点到线段的最近点判断

求出垂足后,判断垂足坐标是否在p1、p2之间,若在则垂足为最近的,否则求p1、p2到p0距离,短者为最近点

点到线段的距离

求出最近点,则就得到了最短距离

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容