999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

使用C#模擬時鐘表的一種簡單制作方法

2010-12-31 00:00:00蔣林利
考試周刊 2010年29期

摘 要: 本文利用C#軟件中計時器控件和GDI+技術制作出時鐘表,并給出相應的源程序。

關鍵詞: C# 模擬時鐘表 Graphics

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個NotifyIcon控件及StatusStrip控件。

2.2各控件的屬性設置

Timer控件的Interval屬性值設置為1000,Enable屬性值設置為True;窗體的StartPosition屬性設置為CenterScreen,這個屬性使得鐘表在屏幕上中中央顯示。

2.3功能實現代碼

為實現該時鐘表功能,需要設計并輸入相應對象相應事件或過程的程序代碼。方法是:在設計狀態,雙擊相應控件,或雙擊控件的某一事件,并輸入相應的C#程序代碼。

2.4通用聲明及時鐘表設計方法

在程序中需要有一批變量或常量的定義,可事先在通用聲明中完成,代碼如下:

const int s_pinlen = 100;//秒針長度

const int m_pinlen = 75; //分針長度

const int h_pinlen = 75; //時針長度

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)) * Math.PI / 180)) * h_pinlen), (int)(CPoint.Y - (Math.Cos(((30 * h) + (m / 2)) * Math.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);

myGraphics.DrawLine(myPen, CPoint, MPoint);

myPen = new Pen(Color.Green , 6);

myGraphics.DrawLine(myPen, CPoint, HPoint);

myGraphics.DrawEllipse(pDisk, 1, 1, s_pinlen * 2, s_pinlen*2);//畫刻度

for (int i = 0; i < 360; i += 6)

{

Pen tempPen = (i % 30 == 0) ? pDisk : pScale;

PointF qidian = AngleToPos(i, 0.87f);

PointF zhongdian= AngleToPos(i, 1.0f);

myGraphics.DrawLine(tempPen, qingdian, zhongdian);

}

2.5 Timer的Tick事件中的代碼

計時器控件代碼部分完成的功能是整個時鐘表的核心,其代碼如下:

int h=DateTime.Now.Hour;

int m = DateTime.Now.Minute;

int s = DateTime.Now.Second;

myClock(h, m, s);//調用畫時鐘表的方法

toolStripStatusLabel1.Text = \"當前時間:\" + DateTime.Now.ToLongTimeString();

3.結語

編寫圖形代碼是計算機編程領域中比較復雜的工作之一,利于C#中GDI+動態地生成時鐘表,編寫程序的設計與實現是以數學科學的設計為基礎,以合理的設計思想為指導,以必要的程序設計語言為工具,基本上滿足了用戶的需要的時鐘表。

參考文獻:

[1]梁冰,呂雙.C#程序開發范例寶典(第2版).明日科技.人民郵電出版社,2009.10.

[2]陳廣.C#程序設計基礎教程與實訓.北京大學出版社,2008.2.

[3]劉莆迎.C#程序設計教程.電子工業出版社,2008.6.

主站蜘蛛池模板: 久久国产热| 欧美日韩专区| 114级毛片免费观看| 国产麻豆91网在线看| 国产丝袜91| 九九九九热精品视频| 欧美色亚洲| 亚洲天堂日本| 成人在线不卡| 97视频精品全国在线观看| 色屁屁一区二区三区视频国产| 一级全黄毛片| 久草青青在线视频| 在线综合亚洲欧美网站| 亚洲日韩久久综合中文字幕| 成年人视频一区二区| 亚洲αv毛片| 四虎精品黑人视频| 精品无码视频在线观看| 欧美福利在线| 91亚洲精选| 99视频有精品视频免费观看| 国产成人久视频免费| 亚洲精品无码AⅤ片青青在线观看| 99资源在线| 这里只有精品国产| 91精品视频网站| 蜜臀AV在线播放| 在线国产91| 在线观看亚洲人成网站| 久久天天躁夜夜躁狠狠| 中国特黄美女一级视频| 精品自窥自偷在线看| 午夜精品久久久久久久无码软件 | 国产精品第5页| 一本色道久久88综合日韩精品| 亚洲无码37.| 欧美视频在线不卡| 九九这里只有精品视频| 色婷婷综合在线| 亚洲成人播放| 2022国产无码在线| 日本免费新一区视频| 国产屁屁影院| 国产视频 第一页| 精品精品国产高清A毛片| 久久精品国产999大香线焦| 中文字幕永久视频| 国产成人久视频免费| 亚洲无码高清免费视频亚洲| 精品人妻一区无码视频| 日韩人妻少妇一区二区| 九九热在线视频| 中文字幕欧美日韩| 亚洲第一国产综合| 午夜视频免费试看| 天天综合网在线| 97国产在线观看| 欧美成人怡春院在线激情| 色噜噜狠狠色综合网图区| 成人年鲁鲁在线观看视频| 国产在线精品人成导航| 伊人五月丁香综合AⅤ| 在线观看网站国产| 97免费在线观看视频| 精品国产免费第一区二区三区日韩| 高清无码不卡视频| Jizz国产色系免费| 成人免费黄色小视频| 亚洲日韩精品综合在线一区二区| 欧美特黄一级大黄录像| 国产一区二区三区在线观看视频 | 欧美一级特黄aaaaaa在线看片| 亚洲天堂精品视频| 欧美不卡视频在线观看| 久久精品只有这里有| 五月激激激综合网色播免费| 狠狠v日韩v欧美v| 欧美97欧美综合色伦图| 91免费精品国偷自产在线在线| 国产十八禁在线观看免费| 亚洲中文无码av永久伊人|