Visual C# .Net Form - AnalogueForm.cs, Text Codes
 
 
 

       
      Return


    

 The codes  ..
    The Form -  AnalogueForm.cs
 
   
 
using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

using System.Data;

namespace Analogue_Clock_VCSNet

{

/// <summary>

/// Summary description for Form1.

/// </summary>

public class AnalogueForm : System.Windows.Forms.Form

{

private System.Windows.Forms.Button btndone;

private System.Windows.Forms.Label label4;

private System.Windows.Forms.Label label3;

private System.Windows.Forms.Label label2;

private System.Windows.Forms.PictureBox pictureBox2;

private System.Windows.Forms.Label ltime;

private System.Windows.Forms.Timer timer1;

private System.Windows.Forms.Timer timer2;

private System.Windows.Forms.Button btnabout;

private System.ComponentModel.IContainer components;

// Variables

// Create Rectangle

Rectangle dotclocktrect = new Rectangle(11, 11, 112, 112);

// Graphic

Graphics ex;

// Structure with an embedded array.

public struct ClockTab

{

// circle sin, cos - table

public double[] cospi;

public double[] sinpi;

}

ClockTab DotClockTab = new ClockTab();

double clockrect_center_x, clockrect_center_y;

double dotclocktrect_radius;

int Position_Second;

int Position_Minute;

int Position_Hour;

int oPosition_Second = 59;

int oPosition_Minute = 59;

int oPosition_Hour = 11;

public AnalogueForm() ...
 

/**/

protected override void Dispose( bool disposing ) ...
 

Windows Form Designer generated code

 

/**/

1
 

static void Main()

{

Application.Run(new AnalogueForm());

}

private void AnalogueForm_Load(object sender, System.EventArgs e)

{

// Structure with an embedded array.

// Arrays size

DotClockTab.cospi = new double[60];

DotClockTab.sinpi = new double[60];

// structure Values

DotClockTab.cospi[0]= 0;

DotClockTab.sinpi[0]= 1;

DotClockTab.cospi[1]= 0.104528463309328 ;

DotClockTab.sinpi[1]= 0.994521895363893 ;

DotClockTab.cospi[2]= 0.207911690855819 ;

DotClockTab.sinpi[2]= 0.978147600725716 ;

DotClockTab.cospi[3]= 0.309016994409107 ;

DotClockTab.sinpi[3]= 0.951056516284055 ;

DotClockTab.cospi[4]= 0.406736643105878 ;

DotClockTab.sinpi[4]= 0.913545457629209 ;

DotClockTab.cospi[5]= 0.500000000025921 ;

DotClockTab.sinpi[5]= 0.866025403769473 ;

DotClockTab.cospi[6]= 0.587785252314266 ;

DotClockTab.sinpi[6]= 0.809016994359114 ;

DotClockTab.cospi[7]= 0.669130606376653 ;

DotClockTab.sinpi[7]= 0.743144825461372 ;

DotClockTab.cospi[8]= 0.743144825491414 ;

DotClockTab.sinpi[8]= 0.669130606343288 ;

DotClockTab.cospi[9]= 0.809016994385503 ;

DotClockTab.sinpi[9]= 0.587785252277944 ;

DotClockTab.cospi[10]= 0.866025403791921 ;

DotClockTab.sinpi[10]= 0.499999999987039 ;

DotClockTab.cospi[11]= 0.913545457647471 ;

DotClockTab.sinpi[11]= 0.406736643064863 ;

DotClockTab.cospi[12]= 0.951056516297928 ;

DotClockTab.sinpi[12]= 0.309016994366408 ;

DotClockTab.cospi[13]= 0.97814760073505 ;

DotClockTab.sinpi[13]= 0.207911690811904 ;

DotClockTab.cospi[14]= 0.994521895368586 ;

DotClockTab.sinpi[14]= 0.104528463264677 ;

DotClockTab.cospi[15]= 1 ;

DotClockTab.sinpi[15]= 0 ;

DotClockTab.cospi[16]= 0.994521895368586 ;

DotClockTab.sinpi[16]= -0.104528463264677 ;

DotClockTab.cospi[17]= 0.97814760073505 ;

DotClockTab.sinpi[17]= -0.207911690811904 ;

DotClockTab.cospi[18]= 0.951056516297928 ;

DotClockTab.sinpi[18]= -0.309016994366407 ;

DotClockTab.cospi[19]= 0.91354545764747 ;

DotClockTab.sinpi[19]= -0.406736643064863 ;

DotClockTab.cospi[20]= 0.866025403791921 ;

DotClockTab.sinpi[20]= -0.499999999987039 ;

DotClockTab.cospi[21]= 0.809016994385503 ;

DotClockTab.sinpi[21]= -0.587785252277944 ;

DotClockTab.cospi[22]= 0.743144825491414 ;

DotClockTab.sinpi[22]= -0.669130606343288 ;

DotClockTab.cospi[23]= 0.669130606376653 ;

DotClockTab.sinpi[23]= -0.743144825461372 ;

DotClockTab.cospi[24]= 0.587785252314266 ;

DotClockTab.sinpi[24]= -0.809016994359114 ;

DotClockTab.cospi[25]= 0.500000000025921 ;

DotClockTab.sinpi[25]= -0.866025403769473 ;

DotClockTab.cospi[26]= 0.406736643105878 ;

DotClockTab.sinpi[26]= -0.913545457629209 ;

DotClockTab.cospi[27]= 0.309016994409107 ;

DotClockTab.sinpi[27]= -0.951056516284054 ;

DotClockTab.cospi[28]= 0.207911690855819 ;

DotClockTab.sinpi[28]= -0.978147600725716 ;

DotClockTab.cospi[29]= 0.104528463309327 ;

DotClockTab.sinpi[29]= -0.994521895363893 ;

DotClockTab.cospi[30]= 0 ;

DotClockTab.sinpi[30]= -1 ;

DotClockTab.cospi[31]= -0.104528463309328 ;

DotClockTab.sinpi[31]= -0.994521895363893 ;

DotClockTab.cospi[32]= -0.207911690855819 ;

DotClockTab.sinpi[32]= -0.978147600725716 ;

DotClockTab.cospi[33]= -0.309016994409107 ;

DotClockTab.sinpi[33]= -0.951056516284055 ;

DotClockTab.cospi[34]= -0.406736643105878 ;

DotClockTab.sinpi[34]= -0.913545457629209 ;

DotClockTab.cospi[35]= -0.500000000025921 ;

DotClockTab.sinpi[35]= -0.866025403769473 ;

DotClockTab.cospi[36]= -0.587785252314266 ;

DotClockTab.sinpi[36]= -0.809016994359114 ;

DotClockTab.cospi[37]= -0.669130606376653 ;

DotClockTab.sinpi[37]= -0.743144825461372 ;

DotClockTab.cospi[38]= -0.743144825491414 ;

DotClockTab.sinpi[38]= -0.669130606343288 ;

DotClockTab.cospi[39]= -0.809016994385503 ;

DotClockTab.sinpi[39]= -0.587785252277944 ;

DotClockTab.cospi[40]= -0.866025403791921 ;

DotClockTab.sinpi[40]= -0.499999999987039 ;

DotClockTab.cospi[41]= -0.913545457647471 ;

DotClockTab.sinpi[41]= -0.406736643064863 ;

DotClockTab.cospi[42]= -0.951056516297928 ;

DotClockTab.sinpi[42]= -0.309016994366408 ;

DotClockTab.cospi[43]= -0.97814760073505 ;

DotClockTab.sinpi[43]= -0.207911690811904 ;

DotClockTab.cospi[44]= -0.994521895368586 ;

DotClockTab.sinpi[44]= -0.104528463264677 ;

DotClockTab.cospi[45]= -1 ;

DotClockTab.sinpi[45]= 0 ;

DotClockTab.cospi[46]= -0.994521895368586 ;

DotClockTab.sinpi[46]= 0.104528463264677 ;

DotClockTab.cospi[47]= -0.97814760073505 ;

DotClockTab.sinpi[47]= 0.207911690811904 ;

DotClockTab.cospi[48]= -0.951056516297928 ;

DotClockTab.sinpi[48]= 0.309016994366407 ;

DotClockTab.cospi[49]= -0.91354545764747 ;

DotClockTab.sinpi[49]= 0.406736643064863 ;

DotClockTab.cospi[50]= -0.866025403791921 ;

DotClockTab.sinpi[50]= 0.499999999987039 ;

DotClockTab.cospi[51]= -0.809016994385503 ;

DotClockTab.sinpi[51]= 0.587785252277944 ;

DotClockTab.cospi[52]= -0.743144825491414 ;

DotClockTab.sinpi[52]= 0.669130606343288 ;

DotClockTab.cospi[53]= -0.669130606376653 ;

DotClockTab.sinpi[53]= 0.743144825461372 ;

DotClockTab.cospi[54]= -0.587785252314266 ;

DotClockTab.sinpi[54]= 0.809016994359114 ;

DotClockTab.cospi[55]= -0.500000000025921 ;

DotClockTab.sinpi[55]= 0.866025403769473 ;

DotClockTab.cospi[56]= -0.406736643105878 ;

DotClockTab.sinpi[56]= 0.913545457629209 ;

DotClockTab.cospi[57]= -0.309016994409107 ;

DotClockTab.sinpi[57]= 0.951056516284054 ;

DotClockTab.cospi[58]= -0.207911690855819 ;

DotClockTab.sinpi[58]= 0.978147600725716 ;

DotClockTab.cospi[59]= -0.104528463309327 ;

DotClockTab.sinpi[59]= 0.994521895363893 ;

}

// Digital Clock ...

private void timer1_Tick(object sender, System.EventArgs e)

{

this.ltime.Text=System.DateTime.Now.ToLongTimeString();

}

private void btndone_Click(object sender, System.EventArgs e)

{

Application.Exit();

}

private void AnalogueForm_Paint(object sender, System.Windows.Forms.PaintEventArgs e)

{

// Create pen.

Pen WhitePen = new Pen(Color.White, 0);

// Graphics

ex = this.CreateGraphics();

// Draw rectangle to screen.

ex.DrawRectangle(WhitePen, dotclocktrect);

//center of clock

clockrect_center_x = dotclocktrect.Left + (dotclocktrect.Right - dotclocktrect.Left)/2;

clockrect_center_y = dotclocktrect.Top + (dotclocktrect.Bottom - dotclocktrect.Top)/2;

// Raduis

dotclocktrect_radius = (clockrect_center_x * 3)/4;

// Paint Clock

PaintClock();

}

 

// Paint Clock

private void PaintClock()

{

SolidBrush NavyBrush = new SolidBrush(Color.Navy);

SolidBrush redBrush = new SolidBrush(Color.Red);

int ii;

ex = this.CreateGraphics();

// draw dot clock

for (ii = 0; ii < 60; ii++)

{

int dotclocktrect_Left = System.Convert.ToUInt16(clockrect_center_x + dotclocktrect_radius * DotClockTab.cospi[ii]);

int dotclocktrect_Top = System.Convert.ToUInt16(clockrect_center_y - dotclocktrect_radius * DotClockTab.sinpi[ii]);

// dots Navy

ex.FillRectangle(NavyBrush, dotclocktrect_Left, dotclocktrect_Top, 2,2);

// dots Red

if (ii == 0 || ii == 5 || ii == 10 || ii == 15 || ii == 20 || ii == 25 ||

ii == 30 || ii == 35 || ii == 40 || ii == 45 || ii == 50 || ii == 55)

ex.FillRectangle(redBrush, dotclocktrect_Left, dotclocktrect_Top, 3,3);

}

}

// Draw Hands

private void DrawHand()

{

int HOURHAND = 7;

int WHOURHAND = 10;

int MINUTEHAND = 9;

int WMINUTEHAND = 15;

// Pen

Pen hpenBackground = new Pen(Color.Black, 1);

Pen hpenForeground = new Pen(Color.White, 1);

if (Position_Second != oPosition_Second)

DrawSecondHand( Position_Second, hpenBackground);

else

DrawSecondHand( Position_Second, hpenForeground);

if (Position_Minute != oPosition_Minute)

DrawMHHand(Position_Minute, MINUTEHAND, WMINUTEHAND, hpenBackground);

else

DrawMHHand(Position_Minute, MINUTEHAND, WMINUTEHAND, hpenForeground);

if ((Position_Hour * 5 + (Position_Minute/12)) != (oPosition_Hour * 5 + (oPosition_Minute/12)))

DrawMHHand((Position_Hour * 5 + (Position_Minute/12)), HOURHAND, WHOURHAND, hpenBackground);

else

DrawMHHand((oPosition_Hour * 5 + (oPosition_Minute/12)), HOURHAND, WHOURHAND, hpenForeground);

if (Position_Second != oPosition_Second)

DrawSecondHand(oPosition_Second, hpenForeground);

else

DrawSecondHand(oPosition_Second, hpenBackground);

if (Position_Minute != oPosition_Minute)

DrawMHHand(oPosition_Minute, MINUTEHAND, WMINUTEHAND, hpenForeground);

else

DrawMHHand(Position_Minute, MINUTEHAND, WMINUTEHAND, hpenBackground);

if ((Position_Hour * 5 + (Position_Minute/12)) != (oPosition_Hour * 5 + (oPosition_Minute/12)))

DrawMHHand((oPosition_Hour * 5 + (oPosition_Minute/12)), HOURHAND, WHOURHAND, hpenForeground);

else

DrawMHHand((Position_Hour * 5 + (Position_Minute/12)), HOURHAND, WHOURHAND, hpenBackground);

oPosition_Second = Position_Second;

oPosition_Minute = Position_Minute;

oPosition_Hour = Position_Hour;

}

 

// Draw minute & hour hand

private void DrawMHHand(int position, int hand_type, int width_hand, Pen hPen)

{

int HQHAND = 7;

ex = this.CreateGraphics();

double mh_radius;

double point1_x, point1_y;

double point2_x, point2_y;

double point3_x, point3_y;

double point4_x, point4_y;

mh_radius = ((clockrect_center_x * 3/4) * hand_type)/10;

/***********************************************************************

DESIGN ...

* point1

* *

* *

point4 * * point2

* point3

**********************************************************************/

point1_x = (clockrect_center_x + ((mh_radius) * DotClockTab.cospi[position]));

point1_y = (clockrect_center_y - ((mh_radius) * DotClockTab.sinpi[position]));

point2_x = (clockrect_center_x + ((mh_radius/width_hand) * DotClockTab.cospi[((position + 15) % 60)]));

point2_y = (clockrect_center_y - ((mh_radius/width_hand) * DotClockTab.sinpi[((position + 15) % 60)]));

point3_x = (clockrect_center_x + ((mh_radius/HQHAND) * DotClockTab.cospi[((position + 30) % 60)]));

point3_y = (clockrect_center_y - ((mh_radius/HQHAND) * DotClockTab.sinpi[((position + 30) % 60)]));

point4_x = (clockrect_center_x + ((mh_radius/width_hand) * DotClockTab.cospi[((position + 45) % 60)]));

point4_y = (clockrect_center_y - ((mh_radius/width_hand) * DotClockTab.sinpi[((position + 45) % 60)]));

ex.DrawLine(hPen, System.Convert.ToUInt16(point1_x), System.Convert.ToUInt16(point1_y), System.Convert.ToUInt16(point2_x), System.Convert.ToUInt16(point2_y));

ex.DrawLine(hPen, System.Convert.ToUInt16(point2_x), System.Convert.ToUInt16(point2_y), System.Convert.ToUInt16(point3_x), System.Convert.ToUInt16(point3_y));

ex.DrawLine(hPen, System.Convert.ToUInt16(point3_x), System.Convert.ToUInt16(point3_y), System.Convert.ToUInt16(point4_x), System.Convert.ToUInt16(point4_y));

ex.DrawLine(hPen, System.Convert.ToUInt16(point4_x), System.Convert.ToUInt16(point4_y), System.Convert.ToUInt16(point1_x), System.Convert.ToUInt16(point1_y));

}

// Draw Second hand

private void DrawSecondHand(int position, Pen hPen)

{

ex = this.CreateGraphics();

double second_radius;

double point_x, point_y;

second_radius = (clockrect_center_x * 27)/40;

point_x = clockrect_center_x + second_radius * DotClockTab.cospi[position];

point_y = clockrect_center_y - second_radius * DotClockTab.sinpi[position];

ex.DrawLine(hPen, System.Convert.ToUInt16(point_x), System.Convert.ToUInt16(point_y), System.Convert.ToUInt16(clockrect_center_x), System.Convert.ToUInt16(clockrect_center_y));

}

// Analogue Clock ...

private void timer2_Tick(object sender, System.EventArgs e)

{

ex = this.CreateGraphics();

Position_Second = System.DateTime.Now.Second;

Position_Minute = System.DateTime.Now.Minute;

if (System.DateTime.Now.Hour < 12)

Position_Hour = System.DateTime.Now.Hour ;

else

Position_Hour = System.DateTime.Now.Hour - 12;

// Draw Hands

DrawHand();

}

private void btnabout_Click(object sender, System.EventArgs e)

{

About fabout = new About();

fabout.Show();

}

}

}

 


 

      Return