.NET示波器控件的實例代碼分析_.Net教程
推薦:VS2010、VS2008等項目的默認(rèn)瀏覽器修改方法(圖文)默認(rèn)情況下,VS會使用操作系統(tǒng)的默認(rèn)瀏覽器,但我在調(diào)試 ASP.NET 程序時更偏向于使用IE瀏覽器,下面與大家分享下VS2010、VS2008等項目的默認(rèn)瀏覽器的修改方法
緣起
同事負(fù)責(zé)的項目中,會掃描硬件中的某個東西是否存在,因此老板希望對這些掃描結(jié)果,能有個圖像畫的介面可以查看
因此做了個小工具,可讀取同事提供的數(shù)據(jù),并將其視覺化顯示
那顯示掃描結(jié)果最容易的就是示波器了,但第三方控件的示波器功能又太繁瑣,最終就決定自己做個簡單的
反正對我來說用GDI來繪制,跟花時間去研究沒用過的第三方控件,時間也不會差太多
思路
如圖所示,示波器其實就是這樣簡單的圖
整體思路其實很單純,就把一個示波器分成三個部分來繪制.
首先是上面那塊橫線,通常表示高值
第二塊是下面那塊橫線,表示低直
第三部分就是連結(jié)垂直的線
高度的運(yùn)算,我是用最簡單的方式,將一個UC的高度直接除2,當(dāng)做中心y座標(biāo)
表示高點的則是中心y座標(biāo)往上,高度/5的位置
表示低點的則是中心y座標(biāo)往下,高度/5的位置
示波器的部份,則是先把頭尾的線去掉,然后再將數(shù)據(jù)拆分成兩個部分
一個部分是高點要繪制的座標(biāo),另一部分是低點要繪制的座標(biāo)
有了這兩個座標(biāo),就同時可以繪制垂直的線了
比例上則是使用示波器的值,以及這個控件的寬度做比例上的調(diào)整
代碼
int max = m_mappingDatas[m_mappingDatas.Count - 1];
m_Ratio = (max + m_mappingDatas[0]*2) / m_width;
// Draw Wafer data
for (int i = 1, j = 0; i < m_mappingDatas.Count; i+=2 ,j++)
{
float xStart = m_mappingDatas[i - 1];
float xEnd = m_mappingDatas[i];
graphics.DrawLine(pen, xStart / m_Ratio, m_yPositionOfWafer,
xEnd / m_Ratio, m_yPositionOfWafer);
graphics.DrawString((j+1).ToString(), Control.DefaultFont, brush,
(xStart / m_Ratio) - 2, m_yPositionOfNoWafer + 1);
}
// Draw No Wafer data
graphics.DrawLine(pen, 0, m_yPositionOfNoWafer,
m_mappingDatas[0] / m_Ratio, m_yPositionOfNoWafer);
for (int i = 2; i < m_mappingDatas.Count; i += 2)
{
float xStart = m_mappingDatas[i - 1];
float xEnd = m_mappingDatas[i];
graphics.DrawLine(pen, xStart / m_Ratio, m_yPositionOfNoWafer,
xEnd / m_Ratio, m_yPositionOfNoWafer);
}
graphics.DrawLine(pen, m_mappingDatas[m_mappingDatas.Count - 1] / m_Ratio, m_yPositionOfNoWafer,
m_width, m_yPositionOfNoWafer);
// Draw vertical line
for (int i = 1; i < m_mappingDatas.Count; i += 2)
{
float X1 = m_mappingDatas[i - 1];
float X2 = m_mappingDatas[i];
graphics.DrawLine(pen, X1 / m_Ratio, m_yPositionOfWafer,
X1 / m_Ratio, m_yPositionOfNoWafer);
graphics.DrawLine(pen, X2 / m_Ratio, m_yPositionOfWafer,
X2 / m_Ratio, m_yPositionOfNoWafer);
}
在我的代碼中,是要掃描半導(dǎo)體晶圓,所以高點是表示有晶圓,低點則是表示沒有晶圓
分享:Asp.net 對路徑的訪問被拒絕 解決方法的分析本篇文章是對Asp.net中對路徑的訪問被拒絕 的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實例(可帶附件)
- js實現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實現(xiàn)
- Asp.Net 無刷新文件上傳并顯示進(jìn)度條的實現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(連接字符串的配置及獲取)
- asp.net頁面?zhèn)髦禍y試實例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲過程實現(xiàn)分頁示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- 使用ExtJS GridPanel從Web Service 獲取、綁定和顯示數(shù)據(jù)
- Google免費(fèi)的SVN服務(wù)器管理VS2010代碼
- ASP.NET生成高質(zhì)量縮略圖通用函數(shù)(c#代碼)
- 淺析CMS內(nèi)容管理系統(tǒng)的兩種方案
- 探索 ASP.NET Futures
- .NET圖像界面按鈕的clicked事件淺談
- 講解asp.net的異常處理機(jī)制
- asp.net中倒計時自動跳轉(zhuǎn)頁面的實現(xiàn)方法(使用javascript)
- 解析在ASP.NET中調(diào)用存儲過程的方法
- ASP.NET的實時天氣及24小時天氣預(yù)報
- 相關(guān)鏈接:
- 教程說明:
.Net教程-.NET示波器控件的實例代碼分析
。