示例#1
0
 private void jbtnHinhElip_Click(object sender, EventArgs e)
 {
     Form1.hinh = 3;
     elips      = new HinhElip();
     elips.ShowDialog();
     if (elips.checkchange == false)
     {
         return;
     }
     elips.hinhelip.MidPoint_Elip(this.JpnLuoiGiaoDien.CreateGraphics());
     labelChange();
 }
示例#2
0
 private void jbtnHinhElip_Click(object sender, EventArgs e)
 {
     xoahinh();
     Form1.hinh = 7;
     elip       = new HinhElip();
     if (elip.ShowDialog() == DialogResult.Cancel)
     {
         Form1.hinh = -1;
     }
     if (elip.checkchange == false)
     {
         return;
     }
     elip.hinhelip.VeElip2(this.JpnLuoiGiaoDien.CreateGraphics(), color);
     labelChange();
     //Nam code
 }
示例#3
0
        private void jbtntiLe_Click(object sender, EventArgs e)
        {
            if (Form1.hinh == -1)
            {
                return;
            }
            else
            {
                double Sx, Sy;
                Sx = (double)this.Sx_numeric.Value;
                Sy = (double)this.Sy_numeric.Value;
                xoahinh();
                if (Form1.hinh == 6)
                {
                    //tỉ lệ làm theo cách mới
                    this.formHT.GetHinhThoi().getCheoA().TiLe(Sx, Sy);
                    this.formHT.GetHinhThoi().getCheoB().TiLe(Sx, Sy);
                    double GocX   = formHT.GetHinhThoi().getTam().getX() * Sx;
                    double GocY   = formHT.GetHinhThoi().getTam().getY() * Sy;
                    double Dentax = GocX - formHT.GetHinhThoi().getTam().getX();
                    double Dentay = GocY - formHT.GetHinhThoi().getTam().getY();
                    formHT.GetHinhThoi().getCheoA().TinhTien(-Dentax, -Dentay);
                    formHT.GetHinhThoi().getCheoB().TinhTien(-Dentax, -Dentay);
                    formHT.GetHinhThoi().Draw(this.JpnLuoiGiaoDien.CreateGraphics(), color);
                }
                else if (Form1.hinh == 5)
                {
                    //tỉ lệ theo cách mới
                    hinhvuong.AB.RealtoFake();
                    hinhvuong.BC.RealtoFake();
                    hinhvuong.CD.RealtoFake();
                    hinhvuong.AD.RealtoFake();

                    //double GocX0 = hinhvuong.AB.getFpoint().getX()+(hinhvuong.AB.getLpoint().getX() - hinhvuong.AB.getFpoint().getX()) / 2.0;
                    //double GocY0 = hinhvuong.BC.getFpoint().getY()+(hinhvuong.BC.getLpoint().getY() - hinhvuong.BC.getFpoint().getY()) / 2.0;\
                    double GocX0  = hinhvuong.AB.getFpoint().getX();
                    double GocY0  = hinhvuong.AB.getLpoint().getY();
                    double GocX   = GocX0 * Sx;
                    double GocY   = GocY0 * Sy;
                    double DentaX = GocX - GocX0;
                    double DentaY = GocY - GocY0;

                    hinhvuong.AB.TiLe(Sx, Sy);
                    hinhvuong.BC.TiLe(Sx, Sy);
                    hinhvuong.CD.TiLe(Sx, Sy);
                    hinhvuong.AD.TiLe(Sx, Sy);

                    hinhvuong.AB.TinhTien(-DentaX, -DentaY);
                    hinhvuong.BC.TinhTien(-DentaX, -DentaY);
                    hinhvuong.CD.TinhTien(-DentaX, -DentaY);
                    hinhvuong.AD.TinhTien(-DentaX, -DentaY);

                    hinhvuong.AB.FaketoReal();
                    hinhvuong.BC.FaketoReal();
                    hinhvuong.CD.FaketoReal();
                    hinhvuong.AD.FaketoReal();

                    hinhvuong.AB.DDA_Line(this.JpnLuoiGiaoDien.CreateGraphics(), color);
                    hinhvuong.CD.DDA_Line(this.JpnLuoiGiaoDien.CreateGraphics(), color);
                    hinhvuong.BC.DDA_Line(this.JpnLuoiGiaoDien.CreateGraphics(), color);
                    hinhvuong.AD.DDA_Line(this.JpnLuoiGiaoDien.CreateGraphics(), color);
                }
                else if (Form1.hinh == 2)
                {
                    hcn.AB.RealtoFake();
                    hcn.BC.RealtoFake();
                    hcn.CD.RealtoFake();
                    hcn.AD.RealtoFake();

                    //double GocX0 = hcn.AB.getFpoint().getX() + (hcn.AB.getLpoint().getX() - hcn.AB.getFpoint().getX()) / 2.0;
                    //double GocY0 = hcn.BC.getFpoint().getY() + (hcn.BC.getLpoint().getY() - hcn.BC.getFpoint().getY()) / 2.0;
                    double GocX0  = hinhvuong.AB.getFpoint().getX();
                    double GocY0  = hinhvuong.AB.getLpoint().getY();
                    double GocX   = GocX0 * Sx;
                    double GocY   = GocY0 * Sy;
                    double DentaX = GocX - GocX0;
                    double DentaY = GocY - GocY0;

                    hcn.AB.TiLe(Sx, Sy);
                    hcn.BC.TiLe(Sx, Sy);
                    hcn.CD.TiLe(Sx, Sy);
                    hcn.AD.TiLe(Sx, Sy);

                    hcn.AB.TinhTien(-DentaX, -DentaY);
                    hcn.BC.TinhTien(-DentaX, -DentaY);
                    hcn.CD.TinhTien(-DentaX, -DentaY);
                    hcn.AD.TinhTien(-DentaX, -DentaY);

                    hcn.AB.FaketoReal();
                    hcn.BC.FaketoReal();
                    hcn.CD.FaketoReal();
                    hcn.AD.FaketoReal();

                    hcn.AB.DDA_Line(this.JpnLuoiGiaoDien.CreateGraphics(), color);
                    hcn.CD.DDA_Line(this.JpnLuoiGiaoDien.CreateGraphics(), color);
                    hcn.BC.DDA_Line(this.JpnLuoiGiaoDien.CreateGraphics(), color);
                    hcn.AD.DDA_Line(this.JpnLuoiGiaoDien.CreateGraphics(), color);
                }
                else if (Form1.hinh == 7)
                {
                    Point A1   = new Point(elip.hinhelip.tam.getX() - elip.hinhelip.a, elip.hinhelip.tam.getY());
                    Point A2   = new Point(elip.hinhelip.tam.getX() + elip.hinhelip.a, elip.hinhelip.tam.getY());
                    Point B1   = new Point(elip.hinhelip.tam.getX(), elip.hinhelip.tam.getY() - elip.hinhelip.b);
                    Point B2   = new Point(elip.hinhelip.tam.getX(), elip.hinhelip.tam.getY() + elip.hinhelip.b);
                    Line  A1A2 = new Line(A1.getX(), A1.getY(), A2.getX(), A2.getY(), Color.Black);
                    Line  B1B2 = new Line(B1.getX(), B1.getY(), B2.getX(), B2.getY(), Color.Black);
                    A1A2.TiLe(Sx, Sy);
                    B1B2.TiLe(Sx, Sy);
                    double GocX   = elip.hinhelip.tam.getX() * Sx;
                    double GocY   = elip.hinhelip.tam.getY() * Sy;
                    double DentaX = GocX - elip.hinhelip.tam.getX();
                    double DentaY = GocY - elip.hinhelip.tam.getY();
                    A1A2.TinhTien(-DentaX, -DentaY);
                    B1B2.TinhTien(-DentaX, -DentaY);
                    // tính lại ab
                    elip.hinhelip.a = (int)Math.Round((A1A2.getLpoint().getX() - A1A2.getFpoint().getX()) / 2.0);
                    elip.hinhelip.b = (int)Math.Round((B1B2.getLpoint().getY() - B1B2.getFpoint().getY()) / 2.0);
                    elip.hinhelip.VeElip2(this.JpnLuoiGiaoDien.CreateGraphics(), color);
                }
                else if (Form1.hinh == 4)
                {
                    if (Sx == Sy)
                    {
                        hinhtron.ht.R = Point.round(hinhtron.ht.R * Sx);
                        hinhtron.ht.Midpoint_htron(this.JpnLuoiGiaoDien.CreateGraphics(), color);
                    }
                    else
                    {
                        Form1.hinh = 7;
                        Point A1   = new Point(hinhtron.ht.getTam().getX() - hinhtron.ht.getR(), hinhtron.ht.getTam().getY());
                        Point A2   = new Point(hinhtron.ht.getTam().getX() + hinhtron.ht.getR(), hinhtron.ht.getTam().getY());
                        Point B1   = new Point(hinhtron.ht.getTam().getX(), hinhtron.ht.getTam().getY() - hinhtron.ht.getR());
                        Point B2   = new Point(hinhtron.ht.getTam().getX(), hinhtron.ht.getTam().getY() + hinhtron.ht.getR());
                        Line  A1A2 = new Line(A1.getX(), A1.getY(), A2.getX(), A2.getY(), Color.Black);
                        Line  B1B2 = new Line(B1.getX(), B1.getY(), B2.getX(), B2.getY(), Color.Black);
                        A1A2.TiLe(Sx, Sy);
                        B1B2.TiLe(Sx, Sy);
                        double GocX   = hinhtron.ht.getTam().getX() * Sx;
                        double GocY   = hinhtron.ht.getTam().getY() * Sy;
                        double DentaX = GocX - hinhtron.ht.getTam().getX();
                        double DentaY = GocY - hinhtron.ht.getTam().getY();
                        A1A2.TinhTien(-DentaX, -DentaY);
                        B1B2.TinhTien(-DentaX, -DentaY);
                        // tính lại ab
                        elip            = new HinhElip();
                        elip.hinhelip   = new Elip(hinhtron.ht.getTam().getX(), hinhtron.ht.getTam().getY(), 0, 0);
                        elip.hinhelip.a = (int)Math.Round((A1A2.getLpoint().getX() - A1A2.getFpoint().getX()) / 2.0);
                        elip.hinhelip.b = (int)Math.Round((B1B2.getLpoint().getY() - B1B2.getFpoint().getY()) / 2.0);
                        elip.hinhelip.VeElip2(this.JpnLuoiGiaoDien.CreateGraphics(), color);
                    }
                }
                else if (Form1.hinh == 3)
                {
                    Point A = new Point(htg.AB.getFpoint().getX(), htg.AB.getFpoint().getY());
                    Point B = new Point(htg.AB.getLpoint().getX(), htg.AB.getLpoint().getY());
                    Point C = new Point(htg.AC.getLpoint().getX(), htg.AC.getLpoint().getY());
                    A = Point.RealToFake(A.getX(), A.getY());
                    B = Point.RealToFake(B.getX(), B.getY());
                    C = Point.RealToFake(C.getX(), C.getY());
                    A.TileDiem(Sx, Sy);
                    B.TileDiem(Sx, Sy);
                    C.TileDiem(Sx, Sy);

                    double GocX0  = A.getX();
                    double GocY0  = A.getY();
                    double GocX   = GocX0 * Sx;
                    double GocY   = GocY0 * Sy;
                    double DentaX = GocX - GocX0;
                    double DentaY = GocY - GocY0;
                    A.TinhTienDiem(-DentaX, -DentaY);
                    B.TinhTienDiem(-DentaX, -DentaY);
                    C.TinhTienDiem(-DentaX, -DentaY);
                    Line AB = new Line(A.getX(), A.getY(), B.getX(), B.getY(), color);
                    Line BC = new Line(B.getX(), B.getY(), C.getX(), C.getY(), color);
                    Line AC = new Line(A.getX(), A.getY(), C.getX(), C.getY(), color);
                    //reset tamgiac
                    htg.AB   = AB;
                    htg.AC   = AC;
                    htg.BC   = BC;
                    htg.xA   = A.getX();
                    htg.yA   = A.getY();
                    htg.cao  = C.getY() - A.getY();
                    htg.rong = B.getX() - A.getX();
                    //vẽ
                    AB.FaketoReal();
                    BC.FaketoReal();
                    AC.FaketoReal();
                    AB.DDA_Line(this.JpnLuoiGiaoDien.CreateGraphics(), color);
                    BC.DDA_Line(this.JpnLuoiGiaoDien.CreateGraphics(), color);
                    AC.DDA_Line(this.JpnLuoiGiaoDien.CreateGraphics(), color);
                }
                this.labelChange();
            }
        }