VeXeHoi

Màu nền
Font chữ
Font size
Chiều cao dòng

namespace VeXeHoi

{

    public partial class Form1 : Form

    {

        Graphics g;

        Bitmap b;

        Pen pen;

        point2D[] vert;

        Color bk;

        public struct point2D

        {

            public double x, y;

        }

        public Form1()

        {

            InitializeComponent();

            b = new Bitmap(this.ClientRectangle.Width, this.ClientRectangle.Height);

            g = Graphics.FromImage(b);

            pen = new Pen(Color.Black);

            this.bk = this.BackColor;

            this.g.Clear(this.bk);

            timer1.Enabled = true;

            timer1.Start();

        }

        public void myline(point2D p1, point2D p2)

        {

            double y1 = b.Height - p1.y;//doi toa do

            double y2 = b.Height - p2.y;//chuyen ve toa do duoi goc trai

            g.DrawLine(pen, (float)p1.x, (float)y1, (float)p2.x, (float)y2);

        }

        public void Tinhtiendiem(ref double x, ref double y, double tx, double ty)

        {

            x += tx;

            y += ty;

        }

        public void TinhtienDsdiem(point2D[] p, double tx, double ty)

        {//tu viet

            for (int i = 0; i < p.Length; i++)

            {

                Tinhtiendiem(ref p[i].x, ref p[i].y, tx, ty);

            }

        }

        public void drawpolygon(point2D[] p)

        {

            for (int i = 0; i < p.Length - 1; i++)

            {

                myline(p[i], p[i + 1]);

            }

            myline(p[p.Length - 1], p[0]);

        }

        private void Form1_Load(object sender, EventArgs e)

        {

            vert = new point2D[6];

            vert[0].x = 100; vert[0].y = 100;

            vert[1].x = 250; vert[1].y = 100;

            vert[2].x = 250; vert[2].y = 200;

            vert[3].x = 100; vert[3].y = 200;

            vert[4].x = 200; vert[4].y = 200;

            drawpolygon(vert);

            g.DrawEllipse(pen, 120, b.Height - 100, 30, 30);

            g.DrawEllipse(pen, 190, b.Height - 100, 30, 30);

            drawpolygon(vert);

        }

        private void Form1_Paint(object sender, PaintEventArgs e)

        {

            drawpolygon(vert);

            Graphics gr = e.Graphics;

            gr.DrawImageUnscaled(b, 0, 0);

        }

        private void timer1_Tick(object sender, EventArgs e)

        {

            g.Clear(bk);

            TinhtienDsdiem(vert,10,0);

            drawpolygon(vert);

            g.DrawEllipse(pen, 120, b.Height - 100, 30, 30);

            g.DrawEllipse(pen, 190, b.Height - 100, 30, 30);

            this.Invalidate();

        }

Bạn đang đọc truyện trên: Truyen2U.Pro