FMX/Tip

delphi - canvas 에서 drawCircle 깔끔하게 그리는 편법

지병철 2021. 6. 3. 12:52

RAD Studio 10.4 에서 작업하였음.

 

델파이 canvas 에서 fill 하는 것은 그나마 깔끔하게 그려지는 반면 draw 하는 것은 깨진것 처럼 그려진다.

델파이 에서 antialiasing 을 지원하면 좋을 것 같은데...

어찌되었건, 편법으로 fill 을 두번 하면 draw 가 깔끔하게 그려진것 처럼 보여지게 된다.

 

왼쪽-Draw, 오른쪽-Fill 2번

 

  Canvas.BeginScene;
  Canvas.Stroke.Color := TAlphaColorRec.Blue;
  Canvas.Stroke.Thickness := 4;
  Canvas.Stroke.Kind := TBrushKind.Solid;
  Canvas.DrawArc(
    PointF(100, 100)
    ,PointF(9, 9)
    ,0
    ,360
    ,1
  );
  Canvas.Fill.Color := TAlphaColorRec.Blue;
  Canvas.FillArc(
    PointF(150, 100)
    ,PointF(10, 10)
    ,0
    ,360
    ,1
  );
  Canvas.Fill.Color := TAlphaColorRec.White;
  Canvas.FillArc(
    PointF(150, 100)
    ,PointF(6, 6)
    ,0
    ,360
    ,1
  );
  Canvas.EndScene;

 

- 이상 -