WinForm은 GDI+를 사용
GDI+란 디바이스 드라이버에 독립적으로 프로그래밍을 할 수 있도록 그래픽 제공해주는 모든 기능
Graphics g;
private bool aClock_Flag = false;
private Point Center;
private double radius;
private int hourHands; //시침,초침,분침의 길이
private int minHands;
private int secHands;
<길이>
hourHand = (int)(radius 0.45)
minHand = (int)(radius 0.55)
secHand = (int)(radius * 0.65)
<각도>
180:PI = 각도 라디안
라디안=으로 바꾸기
시침 = (c.Hour % 12) 30 + c.Minute / 60.0) 30 Math.PI/180;
분침 = (c.Minute c.Second / 60.0) 6 Math.PI / 180;
초침 = (c.Second) 6 * Math.PI / 180;
DrawHands(시침, 분침, 초침);
//시침
DrawLine((int)(hourHand * Math.Sin(radHr)),
-(int)(hourHand * Math.Cos(radHr)), 0, 0, //0,0축이 왼쪽 상단에 있기 때문에 뒤집어주기
Brushes.RoyalBlue, 12, Center.X, Center.Y);
//분침
DrawLine((int)(minHand * Math.Sin(radMin)),
-(int)(minHand * Math.Cos(radMin)), 0, 0, //0,0축이 왼쪽 상단에 있기 때문에 뒤집어주기
Brushes.SkyBlue, 8, Center.X, Center.Y);
//초침
DrawLine((int)(secHand * Math.Sin(radSec)),
-(int)(secHand * Math.Cos(radSec)), 0, 0, //0,0축이 왼쪽 상단에 있기 때문에 뒤집어주기
Brushes.OrangeRed, 5, Center.X, Center.Y);
//배꼽
int coreSize = 16;
Rectangle r= new Rectangle(Center.X - coreSize/2, Center.Y - coreSize/2, coreSize, coreSize);
g.FillEllipse(Brushes.Gold, r);
Pen p = new Pen(Brushes.DarkRed, 3);
g.DrawEllipse(p, r);
private void DrawLine(int x1, int y1, int x2, int y2, Brush color, int thick, int Cx, int Cy)
{
Pen pen = new Pen(color, thick);
//선의 시작과 끝을 둥글게
pen.StartCap = System.Drawing.Drawing2D.LineCap.Round;
pen.EndCap = System.Drawing.Drawing2D.LineCap.Round;
g.DrawLine(pen, x1+Cx, y1+Cy, x2+Cx, y2 + Cy);
}