Analog Saat Oluşturma — C#

Analog Saat Oluşturma — C#

[code lang=”csharp”][/code]

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;//www.gorselprogramlama.com

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Drawing.Drawing2D;

namespace Analog_Saat

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}//www.gorselprogramlama.com

private void Form1_Load(object sender, EventArgs e)

{

this.ClientSize = new Size(300, 300);

}

private void tmrClock_Tick(object sender, EventArgs e)

{

Graphics g = this.CreateGraphics();

float r, x_Orta, y_Orta, sx, sy;

r = this.ClientSize.Width / 2; // Orta nokta

g.DrawEllipse(new Pen(Color.Blue, 6), 0, 0, r * 2, r * 2); // Siyah çerçeve

g.FillEllipse(new SolidBrush(this.BackColor), 0, 0, r * 2, r * 2); // İç tema

x_Orta = r; y_Orta = r;//www.gorselprogramlama.com

r -= 8;

int saat, dakika, saniye, aci;

int kx1, kx2, ky1, ky2;

for (aci = 0; aci <= 360; aci += 6)//www.gorselprogramlama.com

{

kx1 = (int)(x_Orta + (r + 8) * Math.Cos(aci * 3.1415 / 180));

ky1 = (int)(y_Orta – (r + 8) * Math.Sin(aci * 3.1415 / 180));

kx2 = (int)(x_Orta + (r) * Math.Cos(aci * 3.1415 / 180));

ky2 = (int)(y_Orta – (r) * Math.Sin(aci * 3.1415 / 180));

if ((aci % 30) == 0)

//Her 30 derecede bir saat başı bulunur. Bunları kalın çiz

g.DrawLine(new Pen(Color.Red, 4), kx1, ky1, kx2, ky2);

else

//Her 6 derecede bir dakika bulunur. Bunları ince çiz

g.DrawLine(new Pen(Color.Blue, 2), kx1, ky1, kx2, ky2);

}

//www.gorselprogramlama.com

GraphicsPath gp = new GraphicsPath();

saat = DateTime.Now.TimeOfDay.Hours;

aci = -saat * 30 + 90; // her saat 30 derecedir

sx = (float)(x_Orta + r * 2 / 2.5 * Math.Cos(aci * 3.1415 / 180));

sy = (float)(y_Orta – r * 2 / 2.5 * Math.Sin(aci * 3.1415 / 180));

kx1 = (int)(x_Orta – 8 * Math.Cos(aci * 3.1415 / 180 + Math.PI / 2));

kx2 = (int)(x_Orta + 8 * Math.Cos(aci * 3.1415 / 180 + Math.PI / 2));

ky1 = (int)(y_Orta + 8 * Math.Sin(aci * 3.1415 / 180 + Math.PI / 2));

ky2 = (int)(y_Orta – 8 * Math.Sin(aci * 3.1415 / 180 + Math.PI / 2));

g.DrawLine(new Pen(Color.Blue, 7), x_Orta, y_Orta, sx, sy);

//www.gorselprogramlama.com

dakika = DateTime.Now.TimeOfDay.Minutes;

aci = -dakika * 6 + 90; // her dakika 60 derecedir

sx = (float)(x_Orta + r * Math.Cos(aci * 3.1415 / 180));

sy = (float)(y_Orta – r * Math.Sin(aci * 3.1415 / 180));

kx1 = (int)(x_Orta – 4 * Math.Cos(aci * 3.1415 / 180 + Math.PI / 2));

kx2 = (int)(x_Orta + 4 * Math.Cos(aci * 3.1415 / 180 + Math.PI / 2));

ky1 = (int)(y_Orta + 4 * Math.Sin(aci * 3.1415 / 180 + Math.PI / 2));

ky2 = (int)(y_Orta – 4 * Math.Sin(aci * 3.1415 / 180 + Math.PI / 2));

g.DrawLine(new Pen(Color.Blue, 7), x_Orta, y_Orta, sx, sy);

//www.gorselprogramlama.com

saniye = DateTime.Now.TimeOfDay.Seconds;

aci = -saniye * 6 + 90; // her saniye 6 derecedir.

sx = (float)(x_Orta + r * Math.Cos(aci * 3.1415 / 180));

sy = (float)(y_Orta – r * Math.Sin(aci * 3.1415 / 180));

kx1 = (int)(x_Orta – 1 * Math.Cos(aci * 3.1415 / 180 + Math.PI / 2));

kx2 = (int)(x_Orta + 1 * Math.Cos(aci * 3.1415 / 180 + Math.PI / 2));

ky1 = (int)(y_Orta + 1 * Math.Sin(aci * 3.1415 / 180 + Math.PI / 2));

ky2 = (int)(y_Orta – 1 * Math.Sin(aci * 3.1415 / 180 + Math.PI / 2));

g.DrawLine(new Pen(Color.Red, 7), x_Orta, y_Orta, sx, sy);

/*

gp.AddLine(kx1, ky1, sx, sy);

gp.AddLine(kx2, ky2, sx, sy);

gp.AddLine(kx1, ky1, kx2, ky2);

g.DrawPath(new Pen(Color.Blue, 2), gp);

her biri ( saat dk sn ) için yapılacak

*/

gp.AddEllipse(x_Orta – 8, y_Orta – 8, 16, 16);

g.DrawPath(new Pen(Color.Black, 2), gp);

g.FillPath(new SolidBrush(Color.Black), gp);

g.Dispose();//www.gorselprogramlama.com

gp.Dispose();

}

private void Form1_Paint(object sender, PaintEventArgs e)

{

e.Graphics.Clear(this.BackColor);

} //www.gorselprogramlama.com

}

}
<pre>[/code]

Projeyi İNDİR

Yorumlar 1

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir