2023년 7월 12일 수요일

FireMonkey TLine Demo

This video is created by connecting two planets orbiting the sun with different orbital periods with a line.

You can visually see the distance between two destination lines by the length of the line.



The length between the two points was calculated in the following way.

procedure TMForm.Draw_Line2P( x1,y1, x2,y2 : single;  setColor : cardinal );

var

  d, xtemp, ytemp, rAngle : single;

  drawLine : TLine;

begin

  if x1 > x2 then

  begin

    xtemp := x1;     ytemp := y1;

    x1 := x2;          y1 := y2;

    x2 := xtemp;     y2 := ytemp;

  end;


  d := SQRT( Power( x2-x1, 2 ) + Power( y2-y1, 2 ) );   // Uses System.Math

  rAngle := RadToDeg( ArcSin( (y2-y1)/d ));


  drawLine := TLine.Create( BLayout );

  drawLine.Parent := BLayout;

  drawLine.LineLocation := TLineLocation.Inner;

  drawLine.LineType := TLineType.Bottom;

  drawLine.RotationCenter.X := 0;

  drawLine.RotationCenter.Y := 0;

  drawLine.Stroke.Thickness := 1;

  drawLine.Stroke.Color := setColor;

  drawLine.Height := 1;

  drawLine.Width  := d;

  drawLine.Position.X := x1;

  drawLine.Position.Y := y1;

  drawLine.RotationAngle := rAngle;

end;

댓글 없음:

댓글 쓰기