C++百葉窗效果程序設(shè)計資料_第1頁
C++百葉窗效果程序設(shè)計資料_第2頁
C++百葉窗效果程序設(shè)計資料_第3頁
C++百葉窗效果程序設(shè)計資料_第4頁
C++百葉窗效果程序設(shè)計資料_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計任務(wù)書學(xué)院信息科學(xué)與工程學(xué)院專業(yè)電子信息工程學(xué)生姓名學(xué)號設(shè)計題目百葉窗效果程序設(shè)計內(nèi)谷及要求:以面向?qū)ο缶幊碳夹g(shù)設(shè)計 windows應(yīng)用程序,主要功能: 圖片出現(xiàn)百葉窗效果。進度安排:第一階段:16學(xué)時。設(shè)計階段。學(xué)生根據(jù)所選題目,查閱有關(guān)資料,綜合所學(xué)的理論知識 完成整體設(shè)計及具體設(shè)計。第二階段:12學(xué)時。調(diào)試測試階段。上機調(diào)試測試,要求學(xué)生務(wù)必認真,思想高度集中, 調(diào)試成功后,整理、編寫設(shè)計資料及實驗報告。第三階段:4學(xué)時。驗收答辯。指導(dǎo)教師(簽字): 年月日分院院長(簽字): 年月日摘要對于百葉窗效果,將放在暫存圖形中的數(shù)據(jù)分成若干組, 然后依次從第一組 到最后一組搬移,第一次每

2、組各搬移第一條掃描線到可視圖的位置; 第二次搬移 第二條掃描線,接著第三條、第四條掃描線。調(diào)用 CopyRectTcanvas對象與拷貝位圖有關(guān)的是CopyMode屬性和 CopyRect方法,其中CopyMode定義拷貝的模式,而 Copy Rect執(zhí)行位圖拷貝的操作。當(dāng) CopyMode 定義為缺省值cmSrcCopy時,CopyRect將源畫布上的一部分位圖拷貝到目標畫 布上的一個矩形區(qū)域內(nèi)。在delphi平臺上實現(xiàn)百葉窗效果目錄一設(shè)計目的 1二關(guān)鍵技術(shù) 1三程序流程 3四主要源代碼 3五.運行結(jié)果及結(jié)論 .6六參考文獻 7正文:一. 設(shè)計目的通過本課程教學(xué),培養(yǎng)學(xué)生具備利用可視化開發(fā)工

3、具開發(fā)信息 系統(tǒng)能力,培養(yǎng)學(xué)生的實際動手能力以及自學(xué)其它系統(tǒng)開發(fā)工具的能 力。通 過本課程教學(xué),著 重培養(yǎng)學(xué)生具備理論聯(lián)系實際,以 所學(xué)的知 識,用 于解決實際問題的良好素質(zhì)。這次實驗主要通過對可視化開發(fā) 工 具Delphi7 的使用,結(jié) 合 Microsoft Access 強大 的數(shù)據(jù)庫功能,建 立一個人機交互友好系統(tǒng),通 過對已學(xué)知知識的掌握,在理論基礎(chǔ)上 鍛煉自己的實際動手能力,培養(yǎng)學(xué)生發(fā)散思維和系統(tǒng)思維。二. 關(guān)鍵技術(shù)Delphi中與繪圖和位圖操作有關(guān)的對象是畫布 Tcanvas。Teanvas對象功 能強大,封裝了 WindowsAPI的GDI,用戶可以很方便地在畫布上繪制直線、

4、矩形、橢圓、多邊形等基本圖形,還可以顯示、拷貝位圖,卻不必關(guān)心設(shè)備上下 文等GDI概念,極大地方便了用戶。Tcanvas對象本身并不是一個構(gòu)件,不單 獨使用,它總是作為其它對象的屬性來使用的。Delphi有四個對象具有畫布屬性, 它們是TForm、TImage、TPaintbox和Tbitmap,其中前三者是可視化構(gòu)件。 至于Tcanvas的詳細情況,可以參考 Delphi的聯(lián)機幫助。實現(xiàn)簡單的位圖顯示特技,實際上就是以不同的方式逐漸將源位圖拷貝到Tcanvas類型的對象上,如從位圖的中央開始拷貝一個矩形區(qū)域到屏幕中央,矩形區(qū)域不斷擴大直到拷貝整個位圖,其視覺效果就是位圖從屏幕中央向四周擴 散

5、。不同的拷貝方式就形成了多種特技形式,如擴散、拉動和百葉窗等。對于每 種特技形式靈活運用,又可演變出多種花樣,如擴散可以演變?yōu)閺纳舷蛳?、從?向右、從中間向四周和相反方向的擴散,以及從一角向?qū)欠较驍U散的特技花樣。實現(xiàn)上述位圖顯示特技的原理很簡單,關(guān)鍵是怎樣實現(xiàn)位圖的拷貝。在Delphi中有兩種拷貝位圖的方法,相應(yīng)地就有兩種實現(xiàn)位圖顯示特技的方法,一種是用Teanvas對象的方法 CopyRect,另一種是調(diào)用 WindowsAPI的BitBIt 函數(shù)。1、調(diào)用 CopyRectTcanvas對象與拷貝位圖有關(guān)的是CopyMode屬性和 CopyRect方法,其中CopyMode定義拷貝的模式

6、,而 Copy Rect執(zhí)行位圖拷貝的操作。當(dāng) CopyMode 定義為缺省值cmSrcCopy時,CopyRect將源畫布上的一部分位圖拷貝到目標畫 布上的一個矩形區(qū)域內(nèi)。2、調(diào)用BitBlt函數(shù)這里涉及到了在Delphi中如何調(diào)用 Win dowsAPI每當(dāng)生成一個新的項目時,Delphi自動地把 Win Type和 Win Procs單元名添加到所生成單元文件中的 uses子句中,這兩個單元包含了 Delphi調(diào)用WindowsAPI所必須的類型定義和例程 聲明。這樣,只需使用正確的參數(shù)就可以直接調(diào)用 WindowsAPI,而不需要再作 其它任何聲明。BitBlt及類似的StretchB

7、lt函數(shù)是Windows功能強大的圖形處理函數(shù),它的功能與TCanvas的CopyRect函數(shù)一樣,不僅能夠?qū)⑽粓D或位圖的一部分從一 處拷貝到另一處,它還可以根據(jù) 256個不同的光柵操作碼將三幅位圖結(jié)合起來, 從而呈現(xiàn)不同的視覺效果。在 WindowsAPI函數(shù)中,所有的blt函數(shù)的鼻祖都是 BitBlt 函數(shù)。三、程序流程:四主要源代碼:unit Uni t1;in terfaceusesWin dows. Messages, SysUtils, Classes, Graphics, Con trols, Forms, Dialogs,ExtCtrls, StdCtrls;typeTForm

8、1 = class(TForm)Butto n1: TButt on;Image1: TImage;Butto n3: TButt on;procedure Butto n1Click(Se nder: TObject);procedure Butt on 3Click(Se nder: TObject);private Private declarati ons public Public declarati ons end;varForml: TForml;impleme ntati on$R *DFMprocedure TForm1.Butto n1Click(Se nder: TObj

9、ect);varn ewbmp:TBitmap;i,j,delay,bmpheight,bmpwidth:i nteger;xgroup,xco un t:i nteger;beg innewbmp:= TBitmap.Create;n ewbmp.Width:=image1.Width;n ewbmp.Height:=image1.Height;bmpheight:=image1.Height;bmpwidth:=image1.Width;xgroup:=16;xco un t:=bmpheight div xgroup;for i:=0 to xco unt dofor j:=0 to x

10、group dobeg inn ewbmp.Ca nvas.CopyRect(Rect(O,xcou nt*j+i-1,bmpwidth,xco un t*j+i), image1.Ca nv as,Rect(0,xcou nt*j+i-1,bmpwidth,xcou nt*j+i);form1.Ca nvas.Draw(20,20, newbmp);for delay:=0 to 65000 dobeg inend;for delay:=0 to 65000 dobeg inend;end;n ewbmp.Free;end;procedure TForml.Butto n3Click(Se

11、nder: TObject); beg inclose;en d;e nd.五.運行結(jié)果及結(jié)論:運行結(jié)果:廠百阡窗效臬飛退出*hirmiTiri n in mi rii-iiriniinnirmW-結(jié)論:本次課程設(shè)計,通過使用可視化開發(fā)工具 Delphi實現(xiàn)圖片的百葉窗效 果,我們的實際動手能力以及自學(xué)其它系統(tǒng)開發(fā)工具的能力有所提高,同時發(fā)現(xiàn) 平時學(xué)習(xí)中的許多不足之處。例如,在開發(fā)系統(tǒng)過程中,對數(shù)據(jù)庫重要組件包括 數(shù)據(jù)集組件和數(shù)據(jù)顯示組件等的相關(guān)屬性及方法不夠熟悉,還不能在需要時純 熟、靈活地運用,在技術(shù)上無法實現(xiàn)夢寐以求的效果,留下許多缺憾。更好的保證了系統(tǒng)的穩(wěn)定性,提高了系統(tǒng)的容錯能力。六、參考文獻1 .軟件工程Java語言實現(xiàn),Stepen R. Schach著,袁兆山等譯,機械 工業(yè)出版社,1999年9月,北京2 .現(xiàn)代軟件工程一一管理技術(shù)篇,周之英編著,科學(xué)出版社,1999年9月,北

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論