Paul Tinnick

Пользователи
  • Публикации

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

  • Посещение

  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.: отрисовка треугольника, как можно увидеть, в проекте