婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > .NET示波器控件的實例代碼分析

.NET示波器控件的實例代碼分析

熱門標簽:萊蕪外呼電銷機器人價格 五常地圖標注 地圖標注和認領 智能電話營銷外呼系統 電銷語音自動機器人 凱立德導航官網地圖標注 鄭州400電話辦理 聯通 長春呼叫中心外呼系統哪家好 戶外地圖標注軟件手機哪個好用

緣起
同事負責的項目中,會掃描硬件中的某個東西是否存在,因此老板希望對這些掃描結果,能有個圖像畫的介面可以查看
因此做了個小工具,可讀取同事提供的數據,并將其視覺化顯示
那顯示掃描結果最容易的就是示波器了,但第三方控件的示波器功能又太繁瑣,最終就決定自己做個簡單的
反正對我來說用GDI來繪制,跟花時間去研究沒用過的第三方控件,時間也不會差太多

思路



如圖所示,示波器其實就是這樣簡單的圖
整體思路其實很單純,就把一個示波器分成三個部分來繪制.
首先是上面那塊橫線,通常表示高值
第二塊是下面那塊橫線,表示低直
第三部分就是連結垂直的線
高度的運算,我是用最簡單的方式,將一個UC的高度直接除2,當做中心y座標
表示高點的則是中心y座標往上,高度/5的位置
表示低點的則是中心y座標往下,高度/5的位置
示波器的部份,則是先把頭尾的線去掉,然后再將數據拆分成兩個部分
一個部分是高點要繪制的座標,另一部分是低點要繪制的座標
有了這兩個座標,就同時可以繪制垂直的線了
比例上則是使用示波器的值,以及這個控件的寬度做比例上的調整
代碼

復制代碼 代碼如下:

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);
}

在我的代碼中,是要掃描半導體晶圓,所以高點是表示有晶圓,低點則是表示沒有晶圓
項目下載

標簽:岳陽 西寧 湖州 宣城 衢州 西藏 福州 紅河

巨人網絡通訊聲明:本文標題《.NET示波器控件的實例代碼分析》,本文關鍵詞  .NET,示波器,控件,的,實例,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《.NET示波器控件的實例代碼分析》相關的同類信息!
  • 本頁收集關于.NET示波器控件的實例代碼分析的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 灌南县| 海林市| 城市| 金沙县| 乐昌市| 巴林右旗| 旅游| 依安县| 泰顺县| 大荔县| 博爱县| 阳江市| 庆云县| 进贤县| 云林县| 永修县| 息烽县| 阿拉善左旗| 通海县| 宝山区| 自贡市| 称多县| 勃利县| 准格尔旗| 松潘县| 西乌珠穆沁旗| 泗水县| 石台县| 崇左市| 汕头市| 玉屏| 汝州市| 都昌县| 旬阳县| 桦川县| 临沭县| 隆子县| 商南县| 高台县| 靖远县| 阳谷县|