ویژوال 30 شارپ

سورس کدهای جالب سی شارپ فقط با یک نگاه

ویژوال 30 شارپ

سورس کدهای جالب سی شارپ فقط با یک نگاه

Analog Clock

private void Form1_Load(object sender, EventArgs e)
        {
            Bitmap b = new Bitmap(pictureBox1.Width,pictureBox1.Height);
            Graphics g = Graphics.FromImage(b);
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
            for (int i = 1; i <=4; i++)
            {
                float f1 = (float)Math.Sin(Math.PI / 2 * i) * b.Width / 2 + b.Width / 2;
                float f2 = (float)Math.Cos(Math.PI / 2 * i) * b.Height / 2 + b.Height / 2;
                float f3 = (float)Math.Sin(Math.PI / 2 * i) * 90 + b.Width / 2;
                float f4 = (float)Math.Cos(Math.PI / 2 * i) * 90 + b.Height / 2;
                g.DrawLine(new Pen(Brushes.Black, 2), f3 ,
                   f4, f1, f2);
            }
            System.Drawing.Drawing2D.LinearGradientBrush l = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, Width, Height),
                Color.YellowGreen, Color.Green, System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal);
            g.FillEllipse(l, new Rectangle(0, 0, b.Width - 1, b.Height - 1));
            g.DrawEllipse(new Pen(Brushes.Black), new Rectangle(0, 0, b.Width - 1, b.Height - 1));
            pictureBox1.BackgroundImage = b;

        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            Bitmap b = new Bitmap(pictureBox1.Width, pictureBox1.Height);
            Graphics g = Graphics.FromImage(b);
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

            DateTime dt = DateTime.Now;
            double i1 = (dt.Minute * 360) / 60;
            float fm1 = (float)(Math.Sin(Math.PI * i1 / 180) * (b.Width / 2 - 20) + b.Width / 2);
            float fm2 = (float)(-Math.Cos(Math.PI * i1 / 180) * (b.Height / 2 - 20) + b.Height / 2);
            float fm3 = (float)(-Math.Sin(Math.PI * i1 / 180) * (b.Width / 2 - 90) + b.Width / 2);
            float fm4 = (float)(Math.Cos(Math.PI * i1 / 180) * (b.Height / 2 - 90) + b.Height / 2);
            #region Hour
            double i2 =  (dt.Hour * 360) / 12 ;
            float fh1 = (float)(Math.Sin(Math.PI * i2 / 180) * (b.Width / 2 - 50) + b.Width / 2);
            float fh2 = (float)(-Math.Cos(Math.PI * i2 / 180) * (b.Height / 2 - 50) + b.Height / 2);
            float fh3 = (float)(-Math.Sin(Math.PI * i2 / 180) * (b.Width / 2 - 90) + b.Width / 2);
            float fh4 = (float)(Math.Cos(Math.PI * i2 / 180) * (b.Height / 2 - 90) + b.Height / 2);
            g.DrawLine(new Pen(Brushes.Black, 6), b.Width / 2, b.Height / 2, fh1, fh2);
            g.DrawLine(new Pen(Brushes.Black, 6), b.Width / 2, b.Height / 2, fh3, fh4);
            #endregion

            #region Minute
             g.DrawLine(new Pen(Brushes.Blue, 3), b.Width / 2, b.Height / 2, fm1, fm2);
            g.DrawLine(new Pen(Brushes.Blue, 3), b.Width / 2, b.Height / 2, fm3, fm4);
            #endregion

            #region Second

            double i = (dt.Second * 360) / 60;
            float f1 = (float)(Math.Sin(Math.PI * i / 180) * (b.Width / 2 - 15) + b.Width / 2);
            float f2 = (float)(-Math.Cos(Math.PI * i / 180) * (b.Height / 2 - 15) + b.Height / 2);
            float f3 = (float)(-Math.Sin(Math.PI * i / 180) * (b.Width / 2 - 70) + b.Width / 2);
            float f4 = (float)(Math.Cos(Math.PI * i / 180) * (b.Height / 2 - 70) + b.Height / 2);
            g.DrawLine(new Pen(Brushes.Red, 1), b.Width / 2, b.Height / 2, f1, f2);
            g.DrawLine(new Pen(Brushes.Red, 1), b.Width / 2, b.Height / 2, f3, f4);
            #endregion

            g.FillEllipse(Brushes.Black, new Rectangle(b.Width / 2 - 6, b.Height / 2 - 6, 12, 12));
          
            pictureBox1.Image = b;
        }

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد