问题如下:
1:怎样画一个正圆??
2:如何画实心的椭圆,长方形??

解决方案 »

  1.   

    Ellipse()
    Rectangle()注意参数就可以满足你的要求
      

  2.   

    都是在一个矩形框内画的,只要设定左上角跟右下角的坐标就行了,delphi有自带的画图工具
      

  3.   

    用canvas里面的方法,先设定画布的各项属性canvas.brush.style
    canvas.brush.color
    canvas.pen.color
    canvas.pen.style
    然后画出来
    canvas.Ellipse
    或者canvas.Rectangle
    或者canvas.Polygon
    或者用canvas.Lineto裸画
      

  4.   

    画正圆:已知圆心pa:tpoint,半径为r:integer,侧圆的画法为Ellipse(pa.x-r,pa.y-r,pa.x+r,pa.y+r)
    画实心椭圆:canvas.pen.style:=pmcopy;
      

  5.   

    //画任意角度的椭圆,cx, cy是圆点位置,a, b是两个轴长,一样就是画圆,rotangel是旋转的角度
    procedure DrawEllipe(Canvas: TCanvas; cx, cy: integer; a, b: integer; rotangel: real);
    var
      angel: integer;
      ax, bx: real;
    begin
      //画中线
      Canvas.Brush.Style := bsClear;
      Canvas.Pen.Style := psDashDotDot;
      Canvas.MoveTo(cx - Round(a * Cos(rotangel * PI / 180)), cy + Round(a * Sin((rotangel) * PI / 180)));
      Canvas.LineTo(cx + Round(a * Cos(rotangel * PI / 180)), cy - Round(a * Sin((rotangel) * PI / 180)));
      //画椭圆
      Canvas.Pen.Style := psSolid;
      for angel := 0 to 360 do
      begin
        ax := a * Cos(angel * PI / 180) * Cos(rotangel * PI / 180) - b * Sin(angel * PI / 180) * Sin(rotangel * PI / 180);
        bx := a * Cos(angel * PI / 180) * Sin(rotangel * PI / 180) + b * Sin(angel * PI / 180) * Cos(rotangel * PI / 180);
        Canvas.LineTo(cx + Round(ax), cy - Round(bx));
      end;
    end;