面現(xiàn)對象與可視化程序設(shè)計(黃維通第二版)4-5代碼_第1頁
面現(xiàn)對象與可視化程序設(shè)計(黃維通第二版)4-5代碼_第2頁
面現(xiàn)對象與可視化程序設(shè)計(黃維通第二版)4-5代碼_第3頁
面現(xiàn)對象與可視化程序設(shè)計(黃維通第二版)4-5代碼_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、4-5.請編寫下列程序。要求如下:(1)定義一只紅色畫筆,繪制一個等邊五邊形(2)有不同的顏色的線條鏈接互不相鄰的兩個點(diǎn)(3)用不同顏色的畫刷填充上述方法所形成圖形中的每一個區(qū)域#include #include #include #include #define pi 3.1415926535long winapi wndproc(hwnd hwnd,uint imessage,uint wparam,long lparam);/消息處理函數(shù)聲明.bool initwindowsclass(hinstance hinstance);/初始化窗口類聲明bool initwindows(hins

2、tance hinstance, int ncmdshow);/初始化窗口聲明.hwnd hwndmain;int winapi winmain(hinstance hinstance, hinstance hprevinstance, lpstr lpcmdline, int ncmdshow)/主函數(shù)msg message;if(!initwindowsclass(hinstance)/初始化窗口類.return false;if(!initwindows(hinstance,ncmdshow)/初始化窗口.return false;while(getmessage(&message,0,

3、0,0)translatemessage(&message);/消息循環(huán).dispatchmessage(&message);return message.wparam;long winapi wndproc(hwnd hwnd,uint imessage,uint wparam,long lparam)/消息處理函數(shù).hdc hdc;/定義設(shè)備環(huán)境句柄.hbrush hbrush;/定義畫刷句柄hpen hpen;/定義畫筆句柄paintstruct ptstr;/定義包含繪圖信息的結(jié)構(gòu)體變量double r1=200.0,r2;/定義外部和內(nèi)部正五邊形外接圓半徑.point outr5,i

4、nr5; /定義外,內(nèi)正五邊形點(diǎn)結(jié)構(gòu)數(shù)組.point wsjx3,nsjx3; /定義三角形點(diǎn)結(jié)構(gòu)數(shù)組.r2=r1*sin(0.1*pi)/sin(0.7*pi);/根據(jù)外圓半徑計算內(nèi)園半徑./計算內(nèi)外正五邊形的點(diǎn)坐標(biāo).for(int i=0;i5;i+)outri.x=(long)r1*cos(i*0.4*pi)+300;outri.y=(long)r1*sin(i*0.4*pi)+300;inri.x=(long)r2*cos(i*0.4*pi+0.2*pi)+300;inri.y=(long)r2*sin(i*0.4*pi+0.2*pi)+300;switch(imessage)case

5、 wm_paint:/處理繪圖消息.hdc=beginpaint(hwnd,&ptstr);/得到設(shè)備環(huán)境句柄setmapmode(hdc,mm_anisotropic);/設(shè)置映射模式.hpen=createpen(ps_solid,1,rgb(255,0,0);/創(chuàng)新紅色畫筆.selectobject(hdc,hpen);/將畫筆選入.polygon(hdc,outr,5);/畫外正五邊形polygon(hdc,inr,5);/畫內(nèi)正五邊形/填充正五邊形的不同區(qū)域.for(i=0;i5;i+)wsjx0=outri%5;/生成圖形中的三角形區(qū)域的坐標(biāo).wsjx1=inri%5;wsjx2=

6、outr(i+1)%5;/創(chuàng)新新畫刷.hbrush=createsolidbrush(rgb(i*10,i*20,i*30);selectobject(hdc,hbrush);/選入新畫刷.polygon(hdc,wsjx,3);/畫三角形區(qū)域.nsjx0=outri%5;nsjx1=inri%5;nsjx2=inr(i+4)%5;hbrush=createsolidbrush(rgb(255-i*10,200-i*20,255-i*30);/創(chuàng)新畫刷.selectobject(hdc,hbrush);/選入畫刷.polygon(hdc,nsjx,3);/畫三角形區(qū)域.hbrush=creat

7、esolidbrush(rgb(255,255,255);/創(chuàng)新白畫刷.selectobject(hdc,hbrush);/選入畫刷.polygon(hdc,inr,5);/畫中心的五邊形./用不同種顏色的畫筆來繪制五角星.movetoex(hdc,outr0.x,outr0.y,null);for(i=1;i=5;i+)hpen=createpen(ps_solid,1,rgb(0,i*51,0);selectobject(hdc,hpen);lineto(hdc,outr(i+2)%5.x,outr(i+2)%5.y);deleteobject(hpen);/刪除畫筆.deleteobje

8、ct(hbrush);/刪除畫刷.endpaint(hwnd,&ptstr);/結(jié)束繪圖.return 0;case wm_destroy:/處理關(guān)閉窗口信息.postquitmessage(0);/向應(yīng)用程序發(fā)送wm_quit消息.return 0;default:return(defwindowproc(hwnd,imessage,wparam,lparam);bool initwindows(hinstance hinstance, int ncmdshow)/初始化hwnd hwnd;/定義窗口句柄.hwnd=createwindow(polygon,/窗口類名.飛哥五邊形,/窗口實(shí)例

9、標(biāo)題.ws_overlappedwindow,/窗口風(fēng)格.帶邊框,標(biāo)題欄,系統(tǒng)菜單和最大和最小按鈕.cw_usedefault,/窗口左上角坐標(biāo).0,/窗口左上角坐標(biāo).cw_usedefault,/窗口寬度0,/窗口高度null,/無父窗口.null,/無主菜單.hinstance,/創(chuàng)建此窗口的應(yīng)用程序的當(dāng)前句柄.null);/指向一個傳遞給窗口的參數(shù)值從指針./不使用該值.if(!hwnd)/如果窗口創(chuàng)建失敗,返回false.return false;hwndmain=hwnd;/將窗口句柄傳遞給全局變量.showwindow(hwnd,ncmdshow);/顯示窗口.updatewind

10、ow(hwnd);/更新并繪制用戶區(qū).return true;bool initwindowsclass(hinstance hinstance)/初始化窗口類.wndclass wndclass;/定義窗口類.wndclass.cbclsextra=0;/窗口類無擴(kuò)展.wndclass.cbwndextra=0;/窗口實(shí)例無擴(kuò)展.wndclass.hbrbackground=(hbrush)(getstockobject(white_brush);/窗口背景為白色.wndclass.hcursor=loadcursor(null,idc_arrow);/窗口采用箭頭光標(biāo).wndclass.hicon=loadicon(null,idi_application);/窗口的最小化圖標(biāo)為缺省圖標(biāo).wndclass.hinstance=hinstance;/當(dāng)前實(shí)例句柄.wndclass.lpf

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論