请问如何画一个带填充的半圆?

解决方案 »

  1.   

    Form1.Color := clwhite;
      Form1.Canvas.Pen.Color := clred;
      Form1.Canvas.Brush.Color := clred;
      Form1.Canvas.Pie(10, 10, 50, 50, 30, 10, 30, 50);
      

  2.   

    procedure Pie(X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer);
    (X1, Y1)和(X2, Y2)确定所画的椭圆的外结长方形
    (x3,y3)为椭圆弧的起点,(x4,y4)为椭圆弧的终点,方向逆时针
    扇形的边框的颜色于Canvas.Pen.Color相同
    扇形的填充颜色于Canvas.Brush.Color相同
      

  3.   

    procedure Pie(X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer);
    (X1, Y1)和(X2, Y2)确定所画的椭圆的外结长方形
    (x3,y3)为椭圆弧的起点,(x4,y4)为椭圆弧的终点,方向逆时针
    扇形的边框的颜色与Canvas.Pen.Color相同
    扇形的填充颜色与Canvas.Brush.Color相同
      

  4.   

    说明(x3,y3)和(x4,y4)不一定要是该椭圆边上的点。
    假设椭圆中点为(X,Y)(有2 * X = X1 + X2, 2 * Y = Y1 + Y2)
    扇形的起始边为(X,Y)-->(X3,Y3),注意是有方向的
    扇形的中止边为(X,Y)-->(X4,Y4)
    例如下面的三条语句的效果相同:
    Form1.Canvas.Pie(100, 100, 500, 500, 301, 300, 299, 300);
    Form1.Canvas.Pie(100, 100, 500, 500, 500, 300, 100, 300);
    Form1.Canvas.Pie(100, 100, 500, 500, 526, 300, 73, 300);