已知点A(x1,y1) b(X2,Y2)
求点c到直线ab的距离!呵呵

解决方案 »

  1.   

    http://www.huanggao.net/hgweb/topic/tbkt/SX_22_01_008_W/ 中学范本...
      

  2.   

    两点式直线方程:(y-y1)/(y2-y1)=(x-x1)/(x2-x1)点到直线距离:|A*x0+B*y0+C|/(A^2+B^2)^1/2
      

  3.   

    图形可以无级缩放,x,y轴坐标系难道不变?
    要是图形可以无级缩放,x,y轴坐标系不变。那可不确定了
      

  4.   

    不管你无级缩放。要分两中情况。1:c点在直线上的影射点落在ab两点之间。2:同1相反。在将三点影射成空间上的三点。然后用空间向量的求解!
      

  5.   

    我这里没有装delphi,晚上回去我发给你源程序
      

  6.   

    function CalVerDistance(XA, YA, XB, YB, XP, YP: Double): Double;{-----------------------------------------------------------------------------
      参数 :  (XA, YA)、 (XB, YB)是直线上的两点,
               (XP, YP)是直线外的一点
      返回值: 点到直线的距离
    -----------------------------------------------------------------------------}
    var
      dx, dy, dAB, myshadow: double;
    begin
      dx := XB - XA;//取得AB矢量
      dy := YB - YA;
      dAB := sqrt(dx * dx + dy * dy);//取AB矢量的长度
      dx := dx / dAB;//AB矢的单位化
      dy := dy / dAB;
      myshadow := (XP - XA) * dx + (YP - YA) * dy;//取投影
      Result := sqrt((XP - XA) * (XP - XA) + (YP - YA) * (YP - YA) - myshadow *
        myshadow)
    end;
      

  7.   

    //////////////////////////////////////////////////////////////////////////
    //功能:点到直线的距离
    //使用直线方程:  y=kx+b
    //点到直线的方程:d=|kx0-y0+b|/sqrt(k*k+1)
    //当直线平行于x轴时,点到直线的距离d=|y-y1|
    //当直线垂直于x轴时,点到直线的距离d=|x-x1|
    //参数:  point为点的坐标
    //        point1和point2为直线上的两点,由这两点确定直线方程
    //返回值:  点到直线的距离
    //////////////////////////////////////////////////////////////////////////
    function funPointToLineSpace(point,point1,point2:TPoint):Real;
    var
      k :Real;   //直线的斜率
      b :Real;   //直线方程中的b
      d :Real;   //点到直线的距离
    begin
      d:=0;
      if (point1.X <> point2.X) then
        begin
        //确定直线的两点坐标point1和point2的x坐标不相等,即直线不是垂直于x轴
        k:=(point2.Y-point1.Y)/(point2.X-point1.X); //求出直线的斜率
        if k=0 then
          begin
          //斜率等于0,直线为平行直线
          d:=abs(point.Y-point2.Y);   //求出点到直线的距离d
          end
        else
          begin
          //斜率不为0,直线即不平行于x轴也不垂直于x轴
          b:=point2.Y-k*point2.X;                   //求出直线方程中的b
          d:=abs(k*point.X-point.Y+b)/sqrt(k*k+1);  //求出点到直线的距离d
          end;  //if k=0 then
        end
      else
        begin
        //直线垂直于x轴
        d:=abs(point.X-point1.X);   //求出点到直线的距离d
        end;  //if (point1.X <> point2.X) then
      funPointToLineSpace:=d; //返回点到直线的距离
    end;