- 11
- 0
- 约3千字
- 约 3页
- 2021-01-22 发布于天津
- 举报
使用C#模拟时钟表的一种简单制作方法
1.GDI+图形库简介
1.1概述
GDI+是 Microsoft的新.NET Framework类库用于图形编程,因为它是.NET Framework的一 部分,所以也是面对对象的。
1.2设备环境和对象
在GDI+中识别输出设备的方式是使用设备环境 DC对象,该对象存储特定设备的信息并能 把GDI+API函数调用转换为要发送给该设备的指令,还可以查询设备环境对象,确定对应的设 备有什么功能,这样才能据此调整输出结果。
在GDI+中设备环境包装在.NET基类System.Drawing.Graphics 中,大多数绘图工作都是调 用Graphics的对象完成的。
2.如何利用GDI+绘制时钟表
2.1时钟表的各控件属性的设置
用C#中各控件制作一个指针式的时钟放在桌面上显示的界面。 包括1个PictureBox控件、
1 个 Timer 控件、1 个 Notifylcon 控件及 StatusStrip 控件。
2.2各控件的属性设置
Timer控件的Interval 属性值设置为1000,Enable属性值设置为True;窗体的StartPosi tion属性设置为CenterScreen,这个属性使得钟表在屏幕上中中央显示。
2.3功能实现代码
为实现该时钟表功能,需要设计并输入相应对象相应事件或过程的程序代码。 方法是:在设
计状态,双击相应控件,或双击控件的某一事件,并输入相应的C#程序代码。
2.4通用声明及时钟表设计方法
在程序中需要有一批变量或常量的定义,可事先在通用声明中完成,代码如下:
const int s_pi nle n = 100;// 秒针长度
const int m_pi nle n = 75; // 分针长度
const int h_pinlen = 75; // 时针长度
PointF cen ter = new Poin tF(s_p inlen +3, s_pinlen +3);// 中心点位置
SolidBrush sb = new SolidBrush(Color.Black);// 时钟圆心的刷子
除上述变量声明外,时钟表功能编写子方法,方法名为:AngleToPos和myClock,
方法AngleToPos是根据角度和百分比计算出一个点的坐标函数,代码如下:
Poi ntF An gleToPos(i nt an gle, float perce nt)
{
PointF pos = new Poin tF();
double radia n = an gle * Math.PI / 180;
pos.Y = center.Y - s_pinlen * percent * (float)Math.Sin(radian);
pos.X = cen ter.X + s_pi nle n * perce nt * (float)Math.Cos(radia n);
return pos;
}
代码如下:方法myClock主要是绘制时钟表的中心位置、 秒针、分针及时针的结束位置,
代码如下:
Pen pDisk=n ew Pen (Color.Ora nge,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);
Poi nt SPoi nt = new Poi nt((i nt)(CPoi nt.X + (Math.Si n(6 * s * Math.PI / 180)) * s_pi nlen), (in t)(CPoi nt.Y - (Math.Cos(6 * s * Math.PI / 180)) * s_pi nle n));
Point MPoint = new Point((int)(CPoint.X + (Math.Sin(6 * m * Math.PI / 180)) * m_pi nlen), (in t)(CPoi nt.Y - (Math.Cos(6 * m * Math.PI / 180)) * m_pi nle n));
Point HPoint = new Point((int)(CPoint.X + (Math.Sin(((30 * h) + (m / 2)) * Ma
th.PI / 180)) * h_pi nlen), (in t
您可能关注的文档
- 生态知识有奖问答题库.docx
- 生意参谋数据分析师考试题库(一).docx
- 生成性教学实践的价值与策略研究英山研讨会日程表.docx
- 生意转让合同范本三篇.docx
- 生日会的主持词分享.docx
- 生意参谋数据分析师考试题库(二).docx
- 生日宴会主持词模板.docx
- 生日快乐的祝福问候语.docx
- 生日快乐(表格式).docx
- 生日问候语祝福语.docx
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 课件第3讲gps伪距测量原理.pptx VIP
- 焊割工操作安全培训内容课件.pptx VIP
- 蚌埠市博物馆展览陈列大纲.pdf VIP
- 《爷爷的爷爷从哪里来》整本书阅读 课件 四年级下册语文(统编版).pptx VIP
- 指南共识│咯血诊治专家共识.pptx
- 博物馆陈列展览大纲精编.docx VIP
- Q/GDW 376.1-2009《电力用户用电信息采集系统通信协议:主站与采集终端通信协议》及编制说明1.doc VIP
- 阀门电动执行装置设计毕业设计(论文).doc VIP
- 中考数学二轮复习 专题11 二次函数与矩形、菱形的存在性问题(知识解读)(解析版).doc VIP
- 博物馆陈列展览大纲(2019最新版).docx VIP
原创力文档

文档评论(0)