7用C#编的模拟时钟(附源代码)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用C#模拟时钟表的一种简单制作方法

PointF center=new PointF(s_pinlen+3,s_pinlen+3);//中心点位置

SolidBrush sb=new SolidBrush(Color.Black);//时钟圆心的刷子

除上述变量声明外,时钟表功能编写子方法,方法名为:AngleToPos和myClock,

方法AngleToPos是根据角度和百分比计算出一个点的坐标函数,代码如下:

PointF AngleToPos(int angle,float percent)

{

PointF pos=new PointF();

double radian=angle*Math.PI/180;

pos.Y=center.Y-s_pinlen*percent*(float)Math.Sin(radian);

pos.X=center.X+s_pinlen*percent*(float)Math.Cos(radian);

return pos;

}

方法myClock主要是绘制时钟表的中心位置、秒针、分针及时针的结束位置。代码如下: Pen pDisk=new Pen(Color.Orange,3);//时钟背景的笔

Pen pScale=new Pen(Color.Coral);//刻度的笔

Graphics myGraphics=pictureBox1.CreateGraphics();

myGraphics.Clear(Color.White);

Pen myPen=new Pen(Color.Black,2);

Point CPoint=new Point(s_pinlen,s_pinlen);

Point SPoint=new Point((int)(CPoint.X+(Math.Sin(6*s*Math.PI/180))* s_pinlen),(int)(CPoint.Y-(Math.Cos(6*s*Math.PI/180))*s_pinlen));

Point MPoint=new Point((int)(CPoint.X+(Math.Sin(6*m*Math.PI/180))* m_pinlen),(int)(CPoint.Y-(Math.Cos(6*m*Math.PI/180))*m_pinlen));

Point HPoint=new Point((int)(CPoint.X+(Math.Sin(((30*h)+(m/2))*Ma th.PI/180))*h_pinlen),(int)(CPoint.Y-(Math.Cos(((30*h)+(m/2))*Mat h.PI/180))*h_pinlen));

myGraphics.FillEllipse(sb,center.X-8,center.Y-7,14,14);

myGraphics.DrawLine(myPen,CPoint,SPoint);

myPen=new Pen(Color.Blue,4);

相关文档
最新文档