Anh Chị giúp em phần phóng to thu nhỏ đường cong và đa giác vs ạ

em vẽ mấy cái hình chữ nhật hình vuông đường cong đa giác. Giờ em đang vướng chỗ phóng to đường cong với đa giác khi mình click vào đa giác đó. Anh chị nào biết chỉ giúp em phần đường cong với đa giác được không ạ.

{
        public Point p1 { get; set; }
        public Point p2 { get; set; }
        public Color mauve2 { get; set; }
        public int doday2 { get; set; }
        public static Color mauve { get; set; }
        public static int doday { get; set;  }
        public DashStyle kieuve { get; set;  }
        public Pen mypen { get; set; } = new Pen(mauve, doday);
        public bool lamday { get; set; } = false;
        public GraphicsPath path { get; set; }
        public SolidBrush mybrush = new SolidBrush(mauve);
        public Graphics z;

    // public static SolidBrush = new SolidBrush(Color.Black);
    public virtual void draw(Graphics myqp)
        {

        }
        public virtual move(int x, int y)
        {

        }
        public virtual ZoomIN(int x, int y)
        {

        }
        public virtual void ZoomOUT(int x, int y)
        {

        }
}
public class curve : clsdrawbject
{
    public List<Point> points { get; set; } =new List<Point>();
    public override void draw(Graphics mygp)
    {
        try
        {
            Pen mypen2 = new Pen(mauve2, doday2);
            mypen2.DashStyle = kieuve;
            path = new GraphicsPath();
            path.AddCurve(points.ToArray());
            mygp.DrawPath(mypen2, path);
            z = mygp;
        }
        catch
        {
            MessageBox.Show("loi o dau ");
        }
    }
    public override void move(int x, int y)
    {
        p1 = new Point(p1.X + x, p1.Y + y);
        p2 = new Point(p2.X + x, p2.Y + y);
        for (int i = 0; i < points.Count; i++)
        {
            points[i] = new Point(points[i].X + x, points[i].Y + y);
        }
    }
    public override void ZoomIN(int x, int y)
    {
        int deltaX = 100;
        int deltaY = 100;
        z.TranslateTransform(50, 50);
public class dagic : clsdrawobject
{
    public List<Point> points { get; set; } = new List<Point>();
    public override void draw(Graphics myqp)
    {
        try
        {
            Pen mypen2 = new Pen(mauve2, doday2);
            mypen2.DashStyle = kieuve;
            path = new GraphicsPath();
            path.AddPolygon(points.ToArray());
            mygp.DrawPath(mypen2, path);
        }
        catch
        {
            MessageBox.Show("loi o dau ");
        }
    }
    public override void move(int x, int y)
    {
        p1 = new Point(p1.X + x, p1.Y + y);
        p2 = new Point(p2.X + x, p2.Y + y);
        for (int i = 0; i < points.Count; i++)
        {
            points[i] = new Point(points[i].X + x, points[i].Y + y);
        }
    }
    public override void ZoomIN(int x, int y)
    {

        for (int i = 3; i < points.Count - 1; i++)
private void btnZoomOut_Click(object sender, EventArgs e)
{
    clsdrawobject a = new clsdrawobject();
    if (isdichuyenhinh && group.Count == 0)
    {
        for (int i = 0; i < lstobject.Count; i++)
        {
            if (i == tam)
            {
                a = lstobject[i];
                z.ZoomOUT(15, 15);
                p1Main.Refresh();

            }
        }
    }
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?