Перейти к содержанию
Fire Monkey от А до Я

Paul Tinnick

Пользователи
  • Постов

    1
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные Paul Tinnick

  1. Здравствуйте. 

    Суть такова: на канве в TImage отрисовываются простейшие геометрические фигуры: (Круг, прямоугольник и треугольник). Как реализовать масштабирование и перемещение при помощи мыши? Собственно, есть код отрисовки фигур

    procedure TForm1.DrawEllipseButtonClick(Sender: TObject);
    var
      MyRect: TRectF;
      x,y: integer;
    
    begin
      x:=round(image1.Width);
      y:=round(image1.Height);
    
      MyRect := TRectF.Create(
        x div 2 - strtoint(edit3.Text) / 2,
        y div 2 - strtoint(edit3.Text) / 2,
        x div 2 + strtoint(edit3.Text) / 2,
        y div 2 + strtoint(edit3.Text) / 2
                              );
    
      Image1.Bitmap.Canvas.BeginScene;
      Image1.Bitmap.Canvas.DrawEllipse(MyRect, 40);
      Image1.Bitmap.Canvas.EndScene;
    end;
    
    procedure TForm1.DrawRectButtonClick(Sender: TObject);
    var
      MyRect: TRectF;
      x,y: integer;
    begin
      x:=round(image1.Width);
      y:=round(image1.Height);
    
      MyRect := TRectF.Create(
        x div 2 - strtoint(edit2.Text) / 2,
        y div 2 - strtoint(edit1.Text) / 2,
        x div 2 + strtoint(edit2.Text) / 2,
        y div 2 + strtoint(edit1.Text) / 2
                              );
      Image1.Bitmap.Canvas.BeginScene;
      Image1.Bitmap.Canvas.DrawRect(MyRect, 0, 0, AllCorners, 100);
      Image1.Bitmap.Canvas.EndScene;
    end;
    
    procedure TForm1.DrawTriangleButtonClick(Sender: TObject);
    var
      p1, p2, p3, p4: TPointF;
      MyPolygon: TPolygon;
    begin
      p1 := TPointF.Create(16, 40);
      p2 := TPointF.Create(44, 6);
      p3 := TPointF.Create(15,20);
      p4 := TPointF.Create(16,40);
      SetLength(MyPolygon, 4);
      MyPolygon[0] := p1;
      MyPolygon[1] := p2;
      MyPolygon[2] := p3;
      MyPolygon[3] := p4;
      Image1.Bitmap.Canvas.BeginScene;
      Image1.Bitmap.Canvas.DrawPolygon(MyPolygon, 50);
      Image1.Bitmap.Canvas.EndScene;
    end;
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Image1.Bitmap.SetSize(Round(Image1.Width), Round(Image1.Height));
      Image1.Bitmap.Clear(TAlphaColors.White);
    end;

    Помогите, пожалуйста.

    P.S.: отрисовка треугольника, как можно увидеть, в проекте

×
×
  • Создать...