在窗体里画一条直线,已知直线c,b两点坐标,另一条直线垂直于|cb|,求|ac|线上点a坐标。A
|
|
|
C---------------------B
已知C,B点坐标,假设|ac|长度为20。
补充:c角永远是直角。

解决方案 »

  1.   

    procedure Calc(Bx, By, Cx, Cy, AC: Double;  var Ax, Ay: Double);
    var
      a : Double;
    begin
      a := ArcTan((Bx-Cx)/(By-Cy));
      Ax := AC * cos(a) + Cx;
      Ay := AC * sin(a) + Cy;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      Ax, Ay: Double;
    begin
      Calc(310, 274, 308, 438, 6, Ax, Ay);
      ShowMessage(Format('Ax1=%f, Ay1=%f', [Ax, Ay]));
      ShowMessage(Format('Ax2=%f, Ay2=%f', [-Ax, Ay]));
    end;
    -----------------这个方法求出的坐标如果|bc|是斜线,则|ac|不能垂直于|bc|
      

  2.   

    A.x := C.x;
    A.y := C.y - 20;???