private static void DrawClockFace(Graphics g, AnalogueClock analogueClock)
        {
            g.FillEllipse(Brushes.Black,
                          -analogueClock.DiameterInPixel / 2, -analogueClock.DiameterInPixel / 2,
                          analogueClock.DiameterInPixel, analogueClock.DiameterInPixel);

            g.DrawEllipse(new Pen(Brushes.DarkGray, 1f),
                          -analogueClock.DiameterInPixel / 2, -analogueClock.DiameterInPixel / 2,
                          analogueClock.DiameterInPixel, analogueClock.DiameterInPixel);
        }
        private static void DrawClockHands(Graphics g, AnalogueClock analogueClock, DateTime dateTime)
        {
            g.FillEllipse(Brushes.LightGray,
                          -analogueClock.CentreDiameter / 2, -analogueClock.CentreDiameter / 2,
                          analogueClock.CentreDiameter, analogueClock.CentreDiameter);


            g.DrawLine(new Pen(Brushes.LightYellow, analogueClock.HourHandThichness),
                       analogueClock.GetHourHand(dateTime)[0], analogueClock.GetHourHand(dateTime)[1]);
            g.DrawLine(new Pen(Brushes.LightYellow, analogueClock.MinuteHandThickness),
                       analogueClock.GetMinuteHand(dateTime)[0], analogueClock.GetMinuteHand(dateTime)[1]);

            if (analogueClock.ShowSecondHand)
            {
                g.DrawLine(new Pen(Brushes.LightSalmon, analogueClock.SecondHandThickness),
                           analogueClock.GetSecondHand(dateTime)[0], analogueClock.GetSecondHand(dateTime)[1]);
            }

            g.FillEllipse(Brushes.Black,
                          -analogueClock.CentreDiameter / 8, -analogueClock.CentreDiameter / 8,
                          analogueClock.CentreDiameter / 4, analogueClock.CentreDiameter / 4);
        }
示例#3
0
        public Form1(Screen screen)
        {
            InitializeComponent();
            Bounds = screen.Bounds;
            Cursor.Hide();
            InitialPosition = Cursor.Position;


            timer1.Enabled  = true;
            timer1.Interval = 1000;

            timer2.Enabled = true;

            odd         = true;
            panel1.Size = new Size(Bounds.Width, Bounds.Height);
            g           = panel1.CreateGraphics();
            g.Clear(Color.Green);
            g.TextRenderingHint  = System.Drawing.Text.TextRenderingHint.AntiAlias;
            g.CompositingQuality = CompositingQuality.HighQuality;
            //g.InterpolationMode = InterpolationMode.HighQualityBicubic;
            g.SmoothingMode = SmoothingMode.HighQuality;
            font            = new Font(new FontFamily("Segoe UI Light"), size, FontStyle.Regular, GraphicsUnit.Pixel);
            dateFont        = new Font(new FontFamily("Segoe UI Light"), dateSize, FontStyle.Regular, GraphicsUnit.Pixel);

            InitFigureSize();
            InitDelimiterSize();
            InitFigureOffsets();
            UpdateDate();

            clockWidth  = figureOffsets.Last() + figureSize.Width;
            clockHeight = figureSize.Height;

            centre.X = Bounds.Width / 2;
            centre.Y = Bounds.Height / 2;

            analogueClock = new AnalogueClock(288);
        }
 public static int GetClockHeight(AnalogueClock analogueClock)
 {
     return((int)(analogueClock.DiameterInPixel + 0.5f));
 }
 public static void Render(Graphics g, AnalogueClock analogueClock, DateTime dateTime)
 {
     DrawClockFace(g, analogueClock);
     DrawClockHands(g, analogueClock, dateTime);
 }