在矩形图片上,以同一个点(矩形对角线的交点)为圆形,画出多个相同半径差的同心圆!该怎么编程实现。

解决方案 »

  1.   

    可以用  TImage 作为画布,在窗体上放个 TImage控件,设置Image为矩形。
    绘图代码如下:
    procedure TFmMain.btnDrawClick(Sender: TObject);
    var
      i,r: integer;
    begin
      //绘制矩形
      imgCanvas.Canvas.Pen.Color := clBlack;
      imgCanvas.Canvas.MoveTo(0,0);
      imgCanvas.Canvas.LineTo(imgCanvas.Width-1,0);
      imgCanvas.Canvas.LineTo(imgCanvas.Width-1,imgCanvas.Height-1);
      imgCanvas.Canvas.LineTo(0,imgCanvas.Height-1);
      imgCanvas.Canvas.LineTo(0,0);
      //绘制圆
      r := imgCanvas.Height div 2-2;
      for i:=10 downto 1 do
      begin
        //采用随机色画圆
        imgCanvas.Canvas.Pen.Color := Random($FFFFFF);
        imgCanvas.Canvas.Ellipse(imgCanvas.Width div 2-r,
                                 imgCanvas.Height div 2-r,
                                 imgCanvas.Width div 2+r,
                                 imgCanvas.Height div 2+r);
        r := r-10;
      end;
    end;把绘图代码放在定时器里执行,还会有动画效果 
      

  2.   

    上面代码都给出来了
    楼主连Ctrl+C和Ctrl+V都懒得做么?
    去CV一下吧,直接运行看效果的
      

  3.   


    放一个TImage,假设名字叫Image1:
    Image1.Picture.LoadFromFile('xxx');
    Image1.Canvas.Ellipse(...);