• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

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

    來源:懂視網 責編:小采 時間:2020-11-27 22:40:58
    文檔

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

    .NET示波器控件的實例代碼分析:緣起同事負責的項目中,會掃描硬件中的某個東西是否存在,因此老板希望對這些掃描結果,能有個圖像畫的介面可以查看因此做了個小工具,可讀取同事提供的數據,并將其視覺化顯示那顯示掃描結果最容易的就是示波器了,但第三方控件的示波器功能又太繁瑣,最終就
    推薦度:
    導讀.NET示波器控件的實例代碼分析:緣起同事負責的項目中,會掃描硬件中的某個東西是否存在,因此老板希望對這些掃描結果,能有個圖像畫的介面可以查看因此做了個小工具,可讀取同事提供的數據,并將其視覺化顯示那顯示掃描結果最容易的就是示波器了,但第三方控件的示波器功能又太繁瑣,最終就

    緣起
    同事負責的項目中,會掃描硬件中的某個東西是否存在,因此老板希望對這些掃描結果,能有個圖像畫的介面可以查看
    因此做了個小工具,可讀取同事提供的數據,并將其視覺化顯示
    那顯示掃描結果最容易的就是示波器了,但第三方控件的示波器功能又太繁瑣,最終就決定自己做個簡單的
    反正對我來說用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);
    }

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

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

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

    .NET示波器控件的實例代碼分析:緣起同事負責的項目中,會掃描硬件中的某個東西是否存在,因此老板希望對這些掃描結果,能有個圖像畫的介面可以查看因此做了個小工具,可讀取同事提供的數據,并將其視覺化顯示那顯示掃描結果最容易的就是示波器了,但第三方控件的示波器功能又太繁瑣,最終就
    推薦度:
    標簽: 代碼 例子 源代碼
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 久久精品国产一区二区电影| 亚洲精品久久久www| 久久久久亚洲精品男人的天堂| 国产女主播精品大秀系列| 欧美日韩精品系列一区二区三区 | 无码AⅤ精品一区二区三区| 亚洲第一精品福利| 55夜色66夜色国产精品视频| 亚洲精品国产品国语在线| 精品国产一区二区三区久久蜜臀| 日本精品卡一卡2卡3卡四卡| 91麻豆国产福利精品 | 精品国产日产一区二区三区| 青青草国产精品久久久久| 中文字幕无码久久精品青草| 精品久久综合1区2区3区激情| 欧美高清在线精品一区| 91精品在线播放| 成人精品视频99在线观看免费| 欧美精品videosse精子| 亚洲精品无码永久在线观看你懂的| 久久国产精品免费| 精品国产91久久久久久久a | 人妻少妇精品无码专区二区| 欧美精品xxxxbbbb| 精品无码久久久久久久动漫| 国产欧美精品一区二区三区四区| 亚洲欧美日韩精品永久在线| 久久91精品国产91久久户| 国内精品久久久久| 久久99精品国产一区二区三区 | 精品9E精品视频在线观看| 久久国产精品一国产精品金尊| 亚洲av无码国产精品色午夜字幕| 在线亚洲欧美中文精品| 中文字幕日本精品一区二区三区| 亚洲综合国产精品第一页| 综合久久精品色| 久久水蜜桃亚洲av无码精品麻豆| 精品国产第一国产综合精品| AAA级久久久精品无码片|