本文由作者参考部分案例后加以修改完成:

参考链接如下:

http://blog.csdn.net/xuemoyao/article/details/8001113

http://wenku.baidu.com/view/1221d6522f60ddccda38a0e7

(1)     最终效果

(2)程序实现分析:

选用Paint事件进行实现绘制,然后加一个定时器设定为1000毫秒更新一次。

(3)具体方法

在Form窗体(设置大小为300*300),中添加Time1,属性Enabled改为true,Interval设置为1000

然后在Designer.cs中Form1的属性定义下添加

this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);

在Form1.cs中Form1类下添加函数

Private void Form_Paint(Object Sender,PaintEventArgs e)

{

   Graphics g=e.Graphics;      //定义g为该窗体控件的画布    

  int r=100;  

   // 绘制数字时钟

  Rectangle r1=new Rectangle(50,10,200,20);

  //参数分别为左上角矩形坐标,宽度和长度

  g.FillRectangle(Brushes.Chocolate,r1);//填充颜色

  int ss=DateTime.Now.Second;

  int mm=DateTime.Now.Minute;

  int hh=DateTime.Now.Hour;

  String s=Convert.ToString(ss);

  String m=Convert.ToString(mm);

  String h=Convert.ToString(hh);

  if(ss>=0&&ss<=9)

  s=”0”+s;

  if(mm>=0&&mm<=9)

  m=”0”+m;

  if(hh>=0&&hh<=9)

  h=”0”+h;

  Font f1=new Font(“宋体”,12,FontStyle.Bold);

  StringFormat sf1=new StringFormat();

  SolidBrush s1=new SolidBrush(Color.White);

  g.Drawstring(“当前时间”+h+”:”+m+”:”+s,f1,s1,r1,sf1);

  g.DrawString("当前时间  " + h + ":" + m + ":" + s, f1, s1, r1, sf1);

  //绘制圆形轮廓

  g.FillEllipse(Brushes.White,50,50,200,200)

  g.DrawEllipse(New Pen(Color.Red,2),46,46,208,208);

  g.DrawEllipse(new Pen(Color.DarkGray, 1), 50,50, 200, 200);

 //绘制数字刻度

  g.ResetTransform();

  g.TranslateTransform(150, 150);  //重新定位坐标

  Font drawFont = new Font("Arial", 12);

  SolidBrush drawBrush = new SolidBrush(Color.Black);

  e.Graphics.DrawString("6", drawFont, drawBrush,-7,70);

  e.Graphics.DrawString("12", drawFont, drawBrush, -9, -80);

  e.Graphics.DrawString("3", drawFont, drawBrush, 70, -7);

  e.Graphics.DrawString("9", drawFont, drawBrush, -80, -7);

  //绘制刻度

  for (int z = 0; z < 60; z++)

  {

    g.SmoothingMode=System.Drawing.Drawing2D

            .SmoothingMode.HighQuality;   

    //使画出的指针更平滑、高质量

  g.ResetTransform;

  g.TranslateTransform(150,150); //更改坐标原点

 g.RotateYransform(z*5);  //旋转,每一秒旋转6度

 if(z%5==0)

  g=DrawLine(new Pen(Color.Black,3.0f).r-12,0,r-5,0);

      //小时刻度

 else

      g.DrawLine(new Pen(Color.Black,1.5f),r-8,0,r-5,0);

      //分钟标准刻度

}

//绘制秒针

  g.ResetTransform();    //恢复默认状态

  g.TranslateTransform(150,150);

  g.RotateTransform(ss*6+270);

  //以水平线为x轴,从垂直上方开始旋转,每次旋转6度。

   Pen secPen=new Pen(Color.Red,1);

  secPen.StartCap=System.Drawing.Drawing2D.LineCap.RoundAnchor;

   //画线,从圆点开始

  secPen.EndCap=System.Drawing.Drawing2D.LineCap.ArrowAnchor;

  //画线,结束于箭头

  g.DrawLine(secPen,0,0,65,0);//65表示线的长度

  //绘制分针

  g.ResetTransform();

  g.TranslateTransform(150,150);

  g.RotateTransform(mm*6+270);

  Pen minPen=new Pen(Color.Blue,2);

  minPen.StartCap = System.Drawing.Drawing2D.LineCap.RoundAnchor;

minPen.EndCap = System.Drawing.Drawing2D.LineCap.ArrowAnchor;

g.DrawLine(minPen, 0, 0,50 , 0);

//绘制时针

g.ResetTransform();

g.TranslateTransform(150,150);

g.RotateTransform(hh*30+mm*1/2+270);

Pen hourPen = new Pen(Color.Black,3);

hourPen.EndCap = System.Drawing.Drawing2D.LineCap.ArrowAnchor;

g.DrawLine(hourPen, 0, 0, 35, 0);

}

time1的响应事件

private void timer1_Tick(object sender, EventArgs e)

{

  Invalidate();

}

C#绘制圆形时钟的更多相关文章

  1. js绘制圆形时钟

    纯js制作圆形时钟 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  2. canvas自适应圆形时钟绘制

    前面的话 前面介绍过canvas粒子时钟的绘制,本文将详细介绍canvas自适应圆形时钟绘制 效果演示 最终自适应圆形时钟的效果如下所示 功能分析 下面来分析一下该圆形时钟的功能 [1]静态背景 对于 ...

  3. canvas绘制简易时钟

    时钟绘制的非常简易,但该有的都有了. 效果图如下, <!DOCTYPE html> <html> <head lang="en"> <me ...

  4. 使用html5 canvas绘制圆形或弧线

    注意:本文属于<html5 Canvas绘制图形入门详解>系列文章中的一部分.如果你是html5初学者,仅仅阅读本文,可能无法较深入的理解canvas,甚至无法顺畅地通读本文.请点击上述链 ...

  5. 应用canvas绘制动态时钟--每秒自动动态更新时间

    使用canvas绘制时钟 下文是部分代码,完整代码参照:https://github.com/lemoncool/canvas-clock,可直接下载. 首先看一下效果图:每隔一秒会动态更新时间 一. ...

  6. canvas快速绘制圆形、三角形、矩形、多边形

    想看前面整理的canvas常用API的同学可以点下面: canvas学习之API整理笔记(一) canvas学习之API整理笔记(二) 本系列文章涉及的所有代码都将上传至:项目代码github地址,喜 ...

  7. android绘制圆形图片的两种方式

    看下效果先 下面有完整的示例代码 使用BitmapShader(着色器) 我们在绘制view 的时候 就是小学上美术课 用水彩笔在本子上画画 使用着色器绘制圆形图片最简单的理解方式 就是把bitmap ...

  8. jQuery ClockPicker 圆形时钟

    ClockPicker.js是一款时钟插件,其实还可以改进,里面的分可以改成短横线. 在线实例 实例预览  jQuery ClockPicker 圆形时钟 使用方法 <div class=&qu ...

  9. Css绘制圆形,环形,椭圆等图形

    转载自http://blog.csdn.net/gongstrong123/article/details/50888758 绘制圆形,环形,椭圆 <!DOCTYPE html> < ...

随机推荐

  1. Android-x86虚拟机安装配置全攻略

    转自Android-x86虚拟机安装配置全攻略 注:这里安装从简,具体请参考虚拟机Vmware安装运行安卓4.0详细教程 Android-x86虚拟机安装配置网上有很多,但是全部说明白的确不多,希望这 ...

  2. 移动应用产品开发-android开发(二)

    这段时间实在太忙了,也没什么精力来写博客,还是没养成写博客的习惯,还是得记载下来,不然时间久了就忘记了. 早上一大早就来公司了,趁还早,拟定今天的工作内容和计划后,赶紧记载点东西. 最近做androi ...

  3. word在线编辑\生成图片(包含截图与合并)

    1.业务原因 word编辑后的文章复制到html编辑器(fck等)会发生排版错乱的情况,于是混沌了.需要有一个新的方法来终结,于是产生了word能不能在线编辑,后台保存,前台显示灯一系列问题. 2.首 ...

  4. 微软开放技术开发了适用于 Windows Azure 移动服务的开源 Android SDK

     发布于 2014-02-10 作者 陈 忠岳 为进一步实现连接微软与非微软技术的目标,微软开放技术有限公司开发了适用于 Windows Azure 移动服务的 Android SDK,由Scot ...

  5. 【转】Android:Animation的简单学习--不错

    原文网址:http://blog.csdn.net/huangbiao86/article/details/6683665 Animation动画效果.提供了一系列的动画效果,可以应用大多数 的控件. ...

  6. eclipse环境NDK问题汇总

    1. 配置NDK路径设置 可以在cygwin中通过vim修改,也可以在windows安装目录中修改 home\<你的用户名>\.bash_profile 文件中最后添加环境变量 NDK=/ ...

  7. 【转】从QA到EP

    从QA到EP 两三年以前,和友人谈到 QA(软件质量保证) 这个行业,还有 QA 这个团队的未来,就有了一丝忧虑.而现在,终于有机会实践一下自己之前的想法,在这里分享给大家. 从我有限的从业经验到现在 ...

  8. UVA 3890 Most Distant Point from the Sea(二分法+半平面交)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=11358 [思路] 二分法+半平面交 二分与海边的的距离,由法向量可 ...

  9. HTML5与CSS3权威指南.pdf9

    第21章 Media Queries相关样式 该模块中允许添加媒体查询(media query)表达式,用以指定媒体类型,根据媒体类型来选择使用的样式(显示器.便携设备.电视机) 使用方法@media ...

  10. Bzoj 1598: [Usaco2008 Mar]牛跑步 dijkstra,堆,K短路,A*

    1598: [Usaco2008 Mar]牛跑步 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 427  Solved: 246[Submit][St ...