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

基于VC++的二維繪圖程序設計

2019-09-21 01:14:42張亞寧劉春光吳詩帆
科技與創新 2019年17期
關鍵詞:程序

張亞寧,劉春光,吳詩帆

基于VC++的二維繪圖程序設計

張亞寧,劉春光,吳詩帆

(91550部隊,遼寧 大連 116023)

對工程數據進行繪圖是數據分析中的一項重要內容,基于VC++開發環境從數據讀取、選定坐標范圍、繪制數據曲線等方面對二維數據繪圖程序設計流程進行了詳細描述,通過繪圖實驗驗證了程序的正確性和科學性,具有一定的工程意義。

VC++;二維數據;測量設備;繪圖軟件

1 緒論

在工程實踐中,對測量設備或傳感器采集的數據進行實時顯示、事后分析等工作較為普遍[1]。通過計算機繪制出的數據曲線走勢對數據分析具有重要的意義。當前使用較廣泛的繪圖軟件有AutoCAD、Solidworks、MATLAB、OriginPro等,經過多年的發展,以上繪圖軟件的功能較完善。在實際工程中,有時需要對數據進行較快速度的處理,或者需要與計算機硬件接口進行信息互換,此時,利用上述繪圖軟件處理不方便。Visual Studio C++是Microsoft公司推出的一款基于Windows平臺、可視化的集成開發環境,在其平臺下開發的程序具有效率高、占用內存低、與硬件接口銜接方便等特點[2-4]。基于此,本文利用VC++平臺開發了二維數據繪圖程序,并進行了數據繪圖實驗,實驗證明了程序的可行性和科學性,具有一定的工程意義。

2 程序實現

程序設計主要分為4部分,分別是:①獲取數據;②選定坐標范圍;③繪制坐標刻度及標注;④繪制數據曲線。程序各模塊代碼的實現如下。

2.1 獲取數據

獲取數據是程序處理的源頭,在工程中數據獲取分為實時獲取和事后獲取。實時獲取主要從計算機硬件接口獲取,而事后獲取可以從文本、表格等文件中獲取。本文以從TXT文本文件獲取數據為例進行程序設計:

因不同文件數據的行數列數一般不同,所以在定義數據存儲數組前,需要先編寫程序獲取數據的行數和列數。同時,因為數組的維數一般用常量來定義,本程序選擇動態分配空間的方式定義存儲數據數組[*]。數據獲取之后,通過循環語句按照行或列拆分數組,具體如下:

2.2 確定坐標范圍

科學、合理地選擇坐標范圍具有重要的意義,數據范圍過大或過小都將導致看圖不便。本文根據數據(數據同理)的最大、最小值確定坐標范圍,以數據為例程序處理如下:

x_max=max_double(x,N);//計算x的最大值x_max

x_min=min_double(x,N);//計算x的最小值x_min

x_abs_max=abs_max_double(x_max,x_min);//計算x絕對值的最大值

int x_power;//x_power為x的指數,例如:10^2

int xd_start;// xd_start為x軸的左側

int xd_end;// xd_end為x軸的右側

x_power=e_pow_double(xx_abs_max);//計算數值的10的冪次

xd_start=xx_min/pow(10,xx_power)-1;//左側邊界減少1

xd_end =xx_max/pow(10,xx_power)+1;//右側邊界增加1

坐標軸的范圍確定之后,需要確定坐標軸在屏幕上的位置,即:

const int psc_left=400;//繪圖左側邊界

const int psc_right=1000; //繪圖右側邊界

const int psc_up=100; //繪圖上側邊界

const int psc_down=400; //繪圖下側邊界

確定完屏幕范圍后,需要計算坐標范圍和屏幕范圍之間的變換系數,即單位長度的數據在屏幕上的長度,計算公式為=(psc_right-psc_left)/(xd_end-xd_start)//變換系數,=(psc_down-psc_up)/((-yd_start)-(-yd_end))//變換系數。

此處需要注意屏幕橫向是從左向右,縱向是從上向下,所以在計算和兩個變換系數時有所差異。

2.3 繪制坐標軸

繪制坐標軸首先需要計算出原點(0,0)在屏幕上的位置(0,0),根據比例關系得到的公式為:

定好原點(0,0)后,調用MFC中的類CPen,進行畫圖,主要程序代碼如下:

CPen zpen,cpen; //坐標軸zpen,坐標刻度cpen

zpen.CreatePen(PS_SOLID,3,RGB(0,0,0));

cpen.CreatePen(PS_SOLID,2,RGB(0,0,0));

pDC->SetViewportOrg(x0,y0);// 確定原點

pDC->SelectObject(&zpen);//pDC指向zpen,開始畫坐標軸

pDC->MoveTo(xd_start*pow(10,x_power)*ex,0);

pDC->LineTo((xd_end)*pow(10,x_power)*ex,0);

pDC->MoveTo(0,-(yd_end)*pow(10,y_power)*ey);

pDC->LineTo(0,-yd_start*pow(10,y_power)*ey);

pDC->SelectObject(&cpen);//pDC指向cpen,開始畫坐標刻度

CString sTemp;

for (i=xd_start;i<=xd_end;i++){//劃大刻度

pDC->MoveTo(int(i*pow(10,x_power)*ex),0);

pDC->LineTo(int(i*pow(10,x_power)*ex),-8);

for (int j=1;(j<=4)&&(i

pDC->MoveTo(int((i+j*0.2)*pow(10,x_power)*ex),0);

pDC->LineTo(int((i+j*0.2)*pow(10,x_power)*ex),-4);}

sTemp.Format("%d",i);//將數字“i”轉換成字符“sTemp”

pDC->TextOut(int(i*pow(10,xx_power)*ex-4),5,sTemp);}

軸刻度的畫法與軸相同,此處不再贅述。

2.4 繪制數據曲線

坐標軸和坐標刻度繪制完畢之后,最后對數據進行繪制,此處需要強調的是坐標軸的變換系數和數據的變換系數必須一致,即數據的變換系數也是,。

主要程序代碼如下:

CPen pen;定義數據曲線pen畫筆

pen.CreatePen(PS_SOLID,3,RGB(255,0,0));//數據曲線特征

pDC->SelectObject(&pen);//pDC指向pen,開始畫數據曲線

for( i=0;i<=N-1;i++){

pDC->MoveTo(int(x[i]*ex),int(-y[i]*ey));

pDC->LineTo(int(x[i]*ex),int(-y[i]*ey));}

cpen.DeleteObject();//刪除刻度畫筆

zpen.DeleteObject(); //刪除坐標畫筆

pen.DeleteObject(); //刪除數據畫筆

3 實驗驗證

程序完成后,選取兩組工程數據依次在VC++和OriginPro環境下進行繪圖實驗,結果如圖1和圖2所示。

圖1 數據曲線(VC++環境)

圖2 數據曲線(OriginPro環境)

通過對比可以發現,本文設計的二維數據繪圖程序繪圖結果與OriginPro環境下的繪圖結果是一致的,證明了本文設計程序的正確性。

4 小結及展望

本文通過在VC++環境下設計繪圖程序,實現了高效、準確地對事后數據進行繪圖處理,下一步將針對網絡發送的實時數據進行實時繪圖顯示。

[1] 李楊,徐潔,王春海,等.VC++高效無閃爍繪制大數據量圖形[J].電腦編程技巧與維護,2014(2):19-26 .

[2]賈振華.VC++程序設計項目實踐[M].北京:清華大學出版社,2010:36-128.

[3]和清芳.計算機圖形學原理及算法教程(Visual C++版)[M].2版.北京:清華大學出版社,2010:39-58.

[4]王振武.計算機圖形學基礎[M].北京:清華大學出版社,2011:31-77.

TP311

A

10.15913/j.cnki.kjycx.2019.17.020

2095-6835(2019)17-0048-02

張亞寧(1988—),男,碩士研究生,助理工程師,研究方向為數據融合及目標安全控制。

〔編輯:張思楠〕

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
基于VMM的程序行為異常檢測
偵查實驗批準程序初探
我國刑事速裁程序的構建
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 亚洲乱码视频| 69精品在线观看| 国产成人综合在线观看| 国产成人久视频免费| 国产精品亚洲片在线va| 欧美成人一区午夜福利在线| 日韩经典精品无码一区二区| 亚洲精品午夜无码电影网| 日韩在线视频网站| 国禁国产you女视频网站| 伊人精品视频免费在线| 亚洲人成网站在线观看播放不卡| 91极品美女高潮叫床在线观看| 97国内精品久久久久不卡| 99成人在线观看| 国产91在线|日本| 青草国产在线视频| 中文毛片无遮挡播放免费| 亚亚洲乱码一二三四区| 亚洲男人在线| 又黄又湿又爽的视频| 亚洲91在线精品| 免费国产无遮挡又黄又爽| 亚洲无码不卡网| 国产美女在线免费观看| 精品一区二区三区中文字幕| 自拍偷拍欧美日韩| 亚洲欧美日韩久久精品| 99久久精品免费观看国产| 99激情网| 香蕉99国内自产自拍视频| 天天婬欲婬香婬色婬视频播放| 国产超薄肉色丝袜网站| 新SSS无码手机在线观看| 亚洲欧洲日韩久久狠狠爱| 久久久亚洲色| 99在线观看国产| 国产一级裸网站| 成人精品亚洲| 婷婷五月在线视频| 青青草原偷拍视频| 日本尹人综合香蕉在线观看 | 欧美国产日韩在线| 亚洲专区一区二区在线观看| 免费毛片全部不收费的| 女人毛片a级大学毛片免费| 欧美成人亚洲综合精品欧美激情| 国产最爽的乱婬视频国语对白| 激情影院内射美女| 香蕉久久国产精品免| 久久精品aⅴ无码中文字幕 | 国产免费羞羞视频| 97视频精品全国免费观看| 国产精品免费p区| 国产久草视频| 成人国内精品久久久久影院| 99在线观看视频免费| 伊人久久精品无码麻豆精品 | 久久综合五月婷婷| av在线无码浏览| 2019年国产精品自拍不卡| 成人免费视频一区| 亚洲一级色| 97在线观看视频免费| 日本在线亚洲| 亚洲另类国产欧美一区二区| 国产亚洲视频在线观看| 手机看片1024久久精品你懂的| 亚洲乱码视频| 免费高清毛片| 小说区 亚洲 自拍 另类| 国产高清不卡视频| 国产原创演绎剧情有字幕的| 久久免费视频6| 在线精品自拍| 四虎永久在线视频| 强奷白丝美女在线观看| 99尹人香蕉国产免费天天拍| 青青国产视频| 国产亚洲精品91| 成人在线亚洲| 亚洲va欧美va国产综合下载|