趣味编程-编写一个漂亮的钟表程序

小微 科技趣味编程-编写一个漂亮的钟表程序已关闭评论141字数 1600阅读模式
摘要编程也可以很有趣,通过一个个的趣味小程序,可以更好的掌握编程技能。一,最终效果钟表效果 二,实现1,创建一个VS工程,选择C#语言。2,创建一个Form。3,寻找一个漂亮的钟表背景...

编程也能够颇有趣,通过一个个的趣味小程序,可以更好的掌握编程技能。

一,终究效果文章源自微观生活(93wg.com)微观生活-https://93wg.com/11552.html

钟表效果文章源自微观生活(93wg.com)微观生活-https://93wg.com/11552.html

二,实现文章源自微观生活(93wg.com)微观生活-https://93wg.com/11552.html

1,创立一个VS工程,选择C文章源自微观生活(93wg.com)微观生活-https://93wg.com/11552.html

2,创立一个Form。文章源自微观生活(93wg.com)微观生活-https://93wg.com/11552.html

3,寻觅一个漂亮的钟表背景图。如果图片上有时、分、秒针,需要使用photoshop工具去掉。文章源自微观生活(93wg.com)微观生活-https://93wg.com/11552.html

4,在Form上绘制背景图。在Form1_Paint中添加如下代码。文章源自微观生活(93wg.com)微观生活-https://93wg.com/11552.html

//绘制背景文章源自微观生活(93wg.com)微观生活-https://93wg.com/11552.html

Bitmap bmp = new Bitmap(&文章源自微观生活(93wg.com)微观生活-https://93wg.com/11552.html

e.Graphics.DrawImage(bmp, new Rectangle(0,0,300,300));文章源自微观生活(93wg.com)微观生活-https://93wg.com/11552.html

钟表背景

5,在背景图上绘制时、分、秒针。

//绘制秒针

int sec = DateTime.Now.Second;

float angle = 90 - sec * 360 / 60.0f;

angle = 3.1415926f * angle / 180.0f;

PointF dstPoint = new PointF(150 + 125*(float)Math.Cos(angle),

150 - 125 * (float)Math.Sin(angle));

PointF srcPoint= new PointF(150- 20 * (float)Math.Cos(angle),

150 + 20 * (float)Math.Sin(angle));

e.Graphics.DrawLine(new Pen(new SolidBrush(Color.Red), 2),

srcPoint, dstPoint);

//绘制时针

int hour = DateTime.Now.Hour;

angle = 90 - hour * 360 / 12.0f-360*DateTime.Now.Minute/60/12;

angle = 3.1415926f * angle / 180.0f;

dstPoint = new PointF(150 + 80 * (float)Math.Cos(angle),

150 - 80 * (float)Math.Sin(angle));

srcPoint = new PointF(150 - 20 * (float)Math.Cos(angle),

150 + 20 * (float)Math.Sin(angle));

e.Graphics.DrawLine(new Pen(new SolidBrush(Color.Black), 4),

srcPoint, dstPoint);

//绘制分针

int min = DateTime.Now.Minute;

angle = 90 - min * 360 / 60.0f;

angle = 3.1415926f * angle / 180.0f;

dstPoint = new PointF(150 + 100 * (float)Math.Cos(angle),

150 - 100 * (float)Math.Sin(angle));

srcPoint = new PointF(150 - 20 * (float)Math.Cos(angle),

150 + 20 * (float)Math.Sin(angle));

e.Graphics.DrawLine(new Pen(new SolidBrush(Color.Black), 3),

srcPoint, dstPoint);

6,添加Timer控件,Interval设置为1000。在timer1_Tick中添加如下代码实现定时刷新。

this.Invalidate();

7,此时运行代码,发现钟表可能正常显示动画,然而有闪烁问题。需要在Form1_Load中添加this.DoubleBuffered = true,实现绘图双缓存,解决闪烁问题。

8,细心察看,表针显示有锯齿,在Form1_Paint中添加e.Graphics.SmoothingMode = SmoothingMode.HighQuality,实现高质量绘图,解决锯齿问题。

至此,钟表程序就完成为了,有任何问题,请评论中答复!

以上就是微观生活(93wg.com)关于“趣味编程-编写一个漂亮的钟表程序”的详细内容,希望对大家有所帮助!

继续阅读
 
小微
  • 版权声明: 本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们(管理员邮箱:81118366@qq.com),情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
  • 转载请务必保留本文链接:https://93wg.com/11552.html