freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

匯編語言課程設(shè)計粒子運(yùn)動動畫報告-文庫吧

2025-07-23 11:37 本頁面


【正文】 成。要求我們每個成員有自己相對獨(dú)立的模塊,同時要 了解其他組員完成的內(nèi)容。學(xué)生查閱相關(guān)資料,自學(xué)具體課題中涉及到的新知識,能夠按照老師的要求對待設(shè)計的系統(tǒng)的程序流程圖進(jìn)行正確地繪制。學(xué)生在老師的指導(dǎo)下,能夠?qū)懗鱿鄳?yīng)的源程序代碼,采用結(jié)構(gòu)化、模塊化程序設(shè)計方法,功能要完善,界面要美觀。所設(shè)計的系統(tǒng)原則上要能夠運(yùn)行無誤,結(jié)果準(zhǔn)確。在條件允許的情況下,學(xué)生能夠最終將系統(tǒng)所要實現(xiàn)的功能演示出來。最后經(jīng)驗收合格后,按要求寫出課程 設(shè)計報告??傮w設(shè)計應(yīng)配合軟件總體模塊結(jié)構(gòu)圖來說明軟件應(yīng)具有的功能。詳細(xì)設(shè)計應(yīng)用傳統(tǒng)或 NS 流程圖和屏幕抓圖說明,調(diào)試的敘述應(yīng)配合出錯場景的抓圖來說明出現(xiàn)了哪些錯誤,如何解決的。 2 系統(tǒng)分析 主程序設(shè)計思想 本程序主要實現(xiàn)在窗口內(nèi)粒子的運(yùn)動,可以分為三大塊:首先窗口界面的生成,其次隨機(jī)生成 N個隨機(jī)種子變量,使其實現(xiàn)在窗口中央集中。最后第三部分是運(yùn)動軌跡的繪制,主要實現(xiàn)種子在窗口中各方向?qū)嵾\(yùn)動的動態(tài)效果,動畫的原理實質(zhì)上是在屏幕上連續(xù)的間隔 較小的地方顯示相同的圖案。由于人眼具有視覺暫留的特性,我們就會看到“運(yùn)動”的畫面。 模塊圖如下: 圖 21 模塊圖 (1)建立窗口 此模塊要呈現(xiàn)一個窗口用來作為顯示動畫的幕布。首先要選用 ProcWinMain定義主要的窗口函數(shù),在用 PAINT 消息完成客戶區(qū)的更新或失效區(qū)域的繪制,然后建立窗口。在窗口程序中利 用 invoke、 uMsg == WM_COMMAND、 DIB_RGB_COLORS等一系列的函數(shù)以及窗口消息函數(shù) ,來實現(xiàn)種子初始化、窗口像素淡化等一系列子程序的調(diào)用與實現(xiàn)。因為要實現(xiàn)一系列的條件判斷,所以用了大量的 if 條件的嵌套使用。每隔一定的時間關(guān)標(biāo)要移動,才能畫出完整的圖形,所以還需設(shè)置 總體 窗口的建立 生成種子 呈現(xiàn)游走動畫 效果 延時的時間。 (2)生成種子 此模塊主要是想實現(xiàn)多種子在窗口內(nèi)的生成。聯(lián)系實際,可以通過定義多變量以及一個過濾的定義來實現(xiàn)。為類是程序達(dá)到可編程性要求使用 while 語句。所以需要根據(jù)需要來設(shè)置時間和行列變化方向,可根據(jù) 想要呈現(xiàn)的圖形效果具體設(shè)計。 (3)呈現(xiàn)游走動畫效果 此模塊主要是想呈現(xiàn)一個 游走動畫 效果,聯(lián)想現(xiàn)實生活中的動畫,物體要車呈現(xiàn)一定規(guī)律,想要使程序呈現(xiàn)出這種動態(tài)效果,必須是人眼看到粒子是在移動的,而產(chǎn)生移動效果則可通過繪制不同方向的軌跡來實現(xiàn),同樣也需要采用延時,才能顯示出更好的效果,本程序基本設(shè)計為粒子的隨機(jī)移動。 (4)本程序所涉及的主要知識點(diǎn) 模塊化設(shè)計方法: 模塊化設(shè)計方法是按照各部分程序所實現(xiàn)的不同功能把程序劃分成多個模塊,各個模塊在明確各自的功能和相互間的連接約定后,就可以分別編制和調(diào)試程序,最后 再把它們連接起來,形成一個大程序。這是一種很好的程序設(shè)計方法,而子程序結(jié)構(gòu)就是模塊化程序設(shè)計的基礎(chǔ)。 子程序: 子程序又稱為過程,它相當(dāng)于高級語言中的過程和函數(shù)。在一個程序的不同部分,往往要用到類似的程序段,這些程序段的功能和結(jié)構(gòu)形式都相同,只是某些變量的賦值不同,此時就可以把這些程序段寫成子程序的形式,以便需要時可以調(diào)用它。 本章小結(jié) 通過初步的設(shè)計,我設(shè)計出了程序所要實現(xiàn)的效果,整體把握了程序的實現(xiàn)方法,并整理了整個程序的實現(xiàn)思路,在這過程中,最初想了幾種實現(xiàn)方案,最 后通過對程序?qū)崿F(xiàn)的可行性和效 率的分析,選了一種最適合的實現(xiàn)方案。通過本階段的設(shè)計、分析,做出了一個總體設(shè)計方案。 3 詳細(xì)設(shè)計 程序主要是設(shè)計為子程序調(diào)用的方法來實現(xiàn),將各個模塊設(shè)計為不同的子程序,然后在主程序中來調(diào)用這些子程序,每個子程序中都會調(diào)用延時子程序,以便達(dá)到想要的效果,主程序流程圖如下: 開始 定義相關(guān)變量 建立并顯示窗口口 調(diào)用初始化種子的子程序 重設(shè)相關(guān)變量 調(diào)用單步隨機(jī)行走子程序 調(diào)用窗口程序關(guān)閉窗口 結(jié)束 圖 31 主程序流程圖 (1)主程序: 主程序定義了許多變量,是為后面畫圖形做一個標(biāo)志和跳 轉(zhuǎn)的作用,這里沒有用寄存器的原因是,此程序需要存值的地方很多,而寄存器的數(shù)量有限,為避免寄存器的值相互干擾,故另外定義變量。在主程序中,設(shè)定了變量的值,然后調(diào)用子程序,依次實現(xiàn)動畫效果。 .data xClient DWORD 600 。 客戶區(qū)寬度 yClient DWORD 400 。 客戶區(qū)高度 view DWORD 1 。 生成模式: 0 無軌跡模式, 1 拖軌模式, 2 軌跡模式 smode DWORD 1 。 種子模式: 0 分散, 1 集中 seed DWORD 1001 。 種子數(shù) astep DWORD 16 。 單步次數(shù) speed DWORD 18 。 速度控制值(毫秒) ftime DWORD 0 。 時鐘標(biāo)志: 0 沒用, 100 時鐘編號 rngs DWORD 242343,5436,5675,67,678979098,890,32545436,657563453,23435345,143545,45976768,6754,743453455,67546,754,754324783 ridx DWORD 0 tn DWORD 0A2F59C2Eh 。 隨機(jī)數(shù)初始值的工作變量 ra DWORD 19 。 隨機(jī)數(shù)因子 rb DWORD 91 。 隨機(jī)數(shù)平移 rn DWORD 0A2F59C2Eh 。 隨機(jī)數(shù)初始值 r0 rs DWORD 16 。 隨機(jī)數(shù)向右移位的次數(shù) ma DWORD 3 。 隨機(jī)數(shù)掩碼 mf DWORD 0 。 位 0:方向數(shù)(取值 4 或 8),位 1:絕對方向行走模式還是相對模式( A 或 R) bkcolor DWORD 0FFFFFFH bmFile BITMAPFILEHEADER 04D42H, 0, 0, 0, 54 bmInfo BITMAPINFOHEADER sizeof(BITMAPINFOHEADER), 800, 600, 1, 32, BI_RGB, 0, 0, 0, 0, 0 bmFilter BYTE 位圖文件 (*.BMP), 0, *.BMP, 0, 所有文件 (*.*), 0, *.*, 0, 0 bmDefExtBYTE BMP, 0 szCap BYTE 粒子運(yùn)動動畫 , 0 format BYTE %u,0 .data? hInstanceDWORD ? hWinMain DWORD ? hdcTemp HDC ? seedxch DWORD ? strtemp BYTE1024 dup (?) hBitmapTemp HBITMAP ? mTemp DWORD ? bitmapTemp BITMAP ? 。 背景位圖信息 ofn OPENFILENAME ? filename BYTE MAX_PATH dup(?) pathname BYTE MAX_PATH dup(?) ALIGN 16 ats ATOMST 10000 dup(?) 。 種子數(shù)組 att DWORD 10000 dup(?) crCustColors DWORD 16 dup(?) .const szClassName db 39。rpClass39。,0 。 ( 2)初始化種子子程序 此程序設(shè)計的是先初始化種子,分散的種子。隨機(jī)產(chǎn)生 n 個初始點(diǎn)和顏色對于此部分,我把它設(shè)計為一個子程序,然后在中分別調(diào)用其他子程序來實現(xiàn)想要的 效果,具體實現(xiàn)代碼如下: RandProc proc hDlg:DWORD, uMsg:DWORD, wParam:DWORD, lParam:DWORD .if uMsg == WM_INITDIALOG invoke setIPs, hDlg, IDC_EDIT01, ra invoke setIPs, hDlg, IDC_EDIT03, rb invoke setIPs, hDlg, IDC_EDIT02, rn invoke setIPs, hDlg, IDC_EDIT04, rs jmp ItRet0 .elseif uMsg == WM_COMMAND .if wParam == IDOK invoke getIPs, hDlg, IDC_EDIT01 or eax, 1 mov ra, eax invoke getIPs, hDlg, IDC_EDIT03 mov rb, eax invoke getIPs, hDlg, IDC_EDIT02 mov rn, eax invoke getIPs, hDlg, IDC_EDIT04 。 限制移位的范圍 .if eax SDWORD PTR 0 mov eax, 0 .elseif eax 28 mov eax, 28 .endif mov rs, eax invoke EndDialog, hDlg, wParam mov eax, TRUE jmp ItRet .elseif wParam == IDCANCEL invoke EndDialog, hDlg, wParam mov eax, TRUE jmp ItRet .endif .endif ItRet0: xor eax, eax ItRet: ret RandProc endp (3) 單步 (n個像素距離內(nèi)的 )隨機(jī)行走部分 此段程序使用循環(huán)體以及條件語句的嵌套使用實現(xiàn)各個種子的隨機(jī)游走,同時配合其余子程序模塊實現(xiàn)其始終處于沖口內(nèi)部。該子程序是整個程序的核心部分,具體實現(xiàn)代碼如下: 第一部分: Step proc uses ebx, hdcT:HDC, _n:DWORD LOCAL _k:DWORD .if view == 3 mov ebx, offset ats mov edx, offset att mov ecx, seed .while ecx mov eax, [ebx] mov [edx], eax add ebx, 8 add edx, 4 dec ecx .endw .endif mov ecx, 0 .while ecx _n push ecx mov ebx, offset ats mov eax, seed mov _k, eax .while _k call rnd 。 rnd()為:產(chǎn)生 0,1,2,3 的隨機(jī)數(shù)發(fā)生器 and eax, 3 .if eax == 0 inc [ebx]. 。 向右行走一個像素的距離 .elseif eax == 1 dec [ebx]. 。 向上行走一個像素的距離 .elseif eax == 2 dec [ebx]. 。 向左行走一個像素的距離 .elseif eax == 3 inc [ebx]. 。 向下行走一個像素的距離 .elseif eax == 4 inc [ebx]. dec [ebx]. .elseif eax == 5 dec [ebx]. dec [ebx]. .elseif eax == 6 dec [ebx]. inc [ebx]. .else inc [ebx]. inc [ebx]. .endif 此程序主要是圖像的移動,通過不同的值的定義實現(xiàn)圖像向不同方向的移動。 第二個子程序: 。 水平方向上的越界檢查(越界時進(jìn)行回繞處理) movsx eax, [ebx]. .if eax SDWORD PTR 0 mov eax, xClient dec eax mov [ebx]., ax .elseif eax = xClient mov eax, 0 mov [ebx]., ax .endif
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1