Конференция "Media" » Работа с графикой
 
  • Дмитрий (26.02.13 01:17) [0]
    Нужна помощь с графикой!!! Есть программа на которой рисуются: линии, элипсы. Есть 2 image на одном рисуются, а на другом координатная сетка. По нажатию волшебной клавиши нужно чтобы, элипсы нарисованные на одном image перемещались на другой с подписанными рядом координатами. Не знаю как реализовать это!!! Помогите мудрым советом)
    Есть принт программы и того что нужно.
  • MBo © (26.02.13 05:39) [1]
    > Не знаю как реализовать это!!!
    Нужно запомнить!!!! параметры нарисованных эллипсов!!!! и отрисовать!!! такие же!!!!
  • clickmaker © (26.02.13 10:12) [2]
     TGraphicObject = class
     public
       X1: integer;
       Y1: integer;
       X2: integer;
       Y2: integer;
       procedure Draw(ACanvas: TCanvas); virtual; abstract;
       constructor Create(AX1, AY1, AX2, AY2: integer);
     end;

     TLine = class(TGraphicObject)
     public
       procedure Draw(ACanvas: TCanvas); override;
     end;

     TEllipse = class(TGraphicObject)
     public
       procedure Draw(ACanvas: TCanvas); override;
     end;

    constructor TGraphicObject.Create(AX1, AY1, AX2, AY2: integer);
    begin
     X1 := AX1;
     Y1 := AY1;
     X2 := AX2;
     Y2 := AY2;
    end;

    procedure TLine.Draw(ACanvas: TCanvas);
    begin
     ACanvas.MoveTo(X1, Y1);
     ACanvas.LineTo(X2, Y2);
    end;

    procedure TEllipse.Draw(ACanvas: TCanvas);
    begin
     ACanvas.Ellipse(X1, Y1, X2, Y2);
    end;

    procedure TForm1.FormCreate(Sender: TObject);
    begin
     FGraphObjs := TList.Create;
     FGraphObjs.Add(TLine.Create(10, 10, 50, 50));
     FGraphObjs.Add(TEllipse.Create(10, 60, 100, 120));
    end;

    procedure TForm1.MagicButtonClick(Sender: TObject);
    var i: integer;
    begin
     for i := 0 to FGraphObjs.Count-1 do begin
        TGraphicObject(FGraphObjs[i]).Draw(Image2.Canvas);
     end;
    end;

  • Дмитрий (26.02.13 20:12) [3]
    Спасибо попробую!)
 
Конференция "Media" » Работа с графикой
Есть новые Нет новых   [134427   +37][b:0][p:0.001]