Суть такова: на канве в TImage отрисовываются простейшие геометрические фигуры: (Круг, прямоугольник и треугольник). Как реализовать масштабирование и перемещение при помощи мыши? Собственно, есть код отрисовки фигур
procedure TForm1.DrawEllipseButtonClick(Sender:TObject);varMyRect: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);varMyRect: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);beginImage1.Bitmap.SetSize(Round(Image1.Width),Round(Image1.Height));Image1.Bitmap.Clear(TAlphaColors.White);end;
Помогите, пожалуйста.
P.S.: отрисовка треугольника, как можно увидеть, в проекте
Вопрос
Paul Tinnick
Здравствуйте.
Суть такова: на канве в TImage отрисовываются простейшие геометрические фигуры: (Круг, прямоугольник и треугольник). Как реализовать масштабирование и перемещение при помощи мыши? Собственно, есть код отрисовки фигур
Помогите, пожалуйста.
P.S.: отрисовка треугольника, как можно увидеть, в проекте
1 ответ на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.