版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
圖形變換程序設計概述的繪制及圖形顏色變換。一、設計要求4種可選擇的功能,按字母“y”畫一個用點組成的圓;按字母“s”畫一個用不同顏色填充的三角形;按字母“z”顏色填充的矩形;按“q”鍵退出。二、設計思想(一)、界面控制程序開始顯示一行提示信息。鍵盤輸入“y”進入畫圓子程序,輸入“s”進入畫三角形子程序,輸入“z”進入畫矩形子程序。(二)、畫圓較完算法見下圖)(90個SINθCOSθA點位置可由以下表達式確定。<畫圓算法解圖>X=SINθ*Radius+OXY=COSθ*Radius+OY由A點又可求出與其相關的三點A’,B,B’(見上圖)。(三)、畫三角形由設定的字符(“*”)作為填充三角形元素,行數(shù)增12,依此往上畫能形成三角形。三角形顏色的變換是在已畫好圖的基礎上在圖原位置重畫,但改變相應字符的顏色。(四)畫矩形(本題為(本題為下卷即可完成矩形框的顏色變換。三、程序流程圖(一)、主流程圖關鍵代碼;主程序MAINPROCFARASSUMEDS:DATA,SS:STACK,CS:CODESTART:MOVMOVDS,AXINPUT:LEADX,SYSINFO;存偏移地址到DXCALLCL_SCREENCALLDISPLAY;調(diào)用顯示子程序;鍵盤輸入MOVAH,8;鍵盤輸入功能號(無回顯)INT21H;調(diào)用DOS系統(tǒng)中斷;----------------------------------;根據(jù)AL判斷畫哪個圖CMPAL,'Y'JZCIRCLE1CMPAL,'S'JZTRIANGLE1CMPAL,'Z'JZTECTANGLE1;----------------------------------CMPAL,'Q'JEEXIT;鍵盤輸入'Q'字符,退出CALLERRORDISJMPINPUTCIRCLE1:CALLCIRCLEMOVAX,3;顯示方式INT10H;BIOSJMPINPUTTRIANGLE1:CALLTRIANGLEJMPINPUTTECTANGLE1:CALLRECTANGLEJMPINPUTEXIT:CALLCL_SCREENMOVAH,4CH;DOSINT21HMAINENDP;主程序結束(二)、子程序畫圓流程圖(三)、子程序畫三角形流程圖(寫顯存BLBL915,三角形顏色從亮藍變到亮黃。(四)子程序畫矩形流程圖四、程序源代碼RUZHANMACRO;定義宏PUSHAXPUSHBXPUSHCXPUSHDXPUSHSIPUSHDIENDM;結束宏CHUZHANMACRO;定義宏POPDIPOPSIPOPDXPOPCXPOPBXPOPAXENDM;結束宏;----------------------------------------------------------DATASEGMENT;定義數(shù)據(jù)段SYSINFODB'PLEASECHOOSETHELETTERY,S,Z&'DB'INPUTQTOQUIT','$'MYINFODB' DESIGNBYDAWNY ',0DH,0AH,'$'ERRINFODB'CHOOSEERROR!','$'SINEDW00,02,03,05,07,09,11,12,14,16;SIN01DW17,19,21,23,24,26,28,29,31,33DW34,36,37,39,41,42,44,45,47,49DW50,52,53,54,56,57,59,60,62,63DW64,66,67,68,69,71,72,73,74,75DW77,78,79,80,81,82,83,84,85,86DW87,87,88,89,90,91,91,92,93,93DW94,95,95,96,96,97,97,97,98,98DW98,99,99,99,99,100,100,100,100DW100,100MMDW?;定義操作數(shù)為字的助記符MM代表像素點的列增量(為正)F_MMDW?定義操作數(shù)為字的助記符MM代表像素點的列增量(為負)NN DW?定義操作數(shù)為字的助記符NN代表像素點的行增量(為正)F_NNDW?定義操作數(shù)為字的助記符NN代表像素點的行增量(為負)OXEQU120;圓中心的列像素OYEQU240;圓中心的行像素RADIUSDW60;圓的半徑COLOURDB2;圓邊的顏色KKDW100COUNTDB90DATAENDS;----------------------------------------------------------CODESEGMENT;定義代碼段;主程序MAINPROCFARASSUMEDS:DATA,SS:STACK,CS:CODESTART:MOVAX,DATAMOVDS,AX;置光標位置INPUT:MOVAH,2;置光標功能號MOVBH,0;頁號MOVDH,0;行號MOVDL,20;列號INT10H;調(diào)用BIOS中斷LEADX,SYSINFO;存偏移地址到DXCALLCL_SCREENCALLDISPLAY;調(diào)用顯示子程序;鍵盤輸入MOVAH,8;鍵盤輸入功能號(無回顯)INT21H;調(diào)用DOS系統(tǒng)中斷;----------------------------------;根據(jù)AL判斷畫哪個圖CMPAL,'Y'JZCIRCLE1CMPAL,'S'JZTRIANGLE1CMPAL,'Z'JZTECTANGLE1;----------------------------------CMPAL,'Q'JEEXIT;鍵盤輸入'Q'字符,退出CALLERRORDISJMPINPUTCIRCLE1:CALLCIRCLEMOVAX,3;顯示方式INT10H;BIOSJMPINPUTTRIANGLE1:CALLTRIANGLEJMPINPUTTECTANGLE1:CALLRECTANGLEJMPINPUTEXIT:CALLCL_SCREENMOVAH,4CH;DOSINT21HMAINENDP;主程序結束;----------------------------------------------------------;DSDISPLAYPROCNEARMOVAH,9INT21HRETDISPLAYENDP;----------------------------------------------------------;子程序,顯示錯誤信息ERRORDISPROCNEARRUZHANCONTIUNE:MOVAH,2MOVBH,0MOVDH,12MOVDL,30INT10HLEADX,ERRINFO;存偏移地址到DXCALLCL_SCREENCALLDISPLAY;調(diào)用顯示子程序;檢驗鍵盤狀態(tài)MOVAH,0BH;INT21HCMPAL,0JETMP;鍵盤輸入,無回顯MOVAH,07H;功能號INT21HTMP:JZCONTIUNECHUZHANRETERRORDISENDP;----------------------------------------------------------;子程序,清屏CL_SCREENPROCNEARRUZHANMOVAH,7;卷屏功能號MOVAL,0;初始化屏幕MOVBH,7;卷入行屬性,上此處為正常顯示MOVCH,0;左上角行號MOVCL,0;左上角列號MOVDH,24;右下角行號MOVDL,79;右下角列號INT10HCHUZHANRETCL_SCREENENDP;----------------------------------------------------------;子程序,畫圓CIRCLEPROCNEARRUZHAN;調(diào)用宏,保存寄存器CALLSCREEN;調(diào)用屏幕子程序MOVCOUNT,90MOVSI,OFFSETSINE+89*2COS10MOVDI,OFFSETSINEAGAIN:CALLCOMPUTE;調(diào)用計算圓邊像素點CALLWRITE;描圓邊SUBSI,2;SI與源操作數(shù)相減ADDDI,2;DI與源操作數(shù)相加DECCOUNTJNZAGAIN;ZF0跳轉CHUZHAN;調(diào)用宏,恢復寄存器RETCIRCLEENDP;----------------------------------------------------------;10H;BIOSMOVAH,0BH;置彩色調(diào)板MOVBX,0;BH為彩色調(diào)色板ID,BL為ID配套使用的顏色INT10HRETSCREENENDP;----------------------------------------------------------;子程序,計算圓邊像素點COMPUTEPROCNEARMOVAX,[SISIAX,SI++依次得到所有圓邊點MULRADIUS;AXRADIUSAXDIVKK;得到圓邊像素點的列位置MOVMM,AXNEGAX;將AX轉化為二進制補碼,以求相對應的像素點MOVF_MM,AX;AXF_MMMOVAX,[DI]MULRADIUSDIVKKMOVNN,AXNEGAXMOVF_NN,AXRETCOMPUTEENDP;----------------------------------------------------------;子程序,描點WRITEPROCMOVDX,F_MM;對應像素列ADDDX,OYMOVCX,NN ;ADDCX,OXCALLWR_DOTMOVCX,F_NNADDCX,OXCALLWR_DOTMOVDX,MMADDDX,OYCALLWR_DOTMOVCX,NNADDCX,OXCALLWR_DOTRETWRITEENDP;----------------------------------------------------------;子程序,寫像素WR_DOTPROCMOVAH,0CH;寫像素功能號MOVAL,COLOUR;顏色值MOVBH,0;頁號INT10HRETWR_DOTENDP;----------------------------------------------------------;子程序,畫三角形TRIANGLEPROCNEARRUZHAN;保存寄存器MOVBL,9;字符屬性,暗藍GOON:MOVCH,1;1代表走,0代表暫停COLOR:MOVAH,0BH;檢驗鍵盤狀態(tài)INT21HCMPAL,0JNZAACMPCH,1JNZMOVCX,1;顯示字符個數(shù)MOVAH,2;功能號MOVBH,0;頁號MOVDH,6;行號MOVDL,36;列號INT10HHUATU:MOVAH,2;置光標INT10H;MOVAH,9;功能號MOVBH,0;顯示頁MOVAL,2AH;字符,'*'INT10HINCDH;行數(shù)加1,DOS窗口向下畫DECDL;列號減1,以便形成三角形ADDCX,2;每畫一行,顯示字符數(shù)加2個CMPCX,21;畫完為止JNZHUATUINCBLCMPBL,15JNZGOONAA:MOVAH,7INT21HCMPAL,'Q'JNZBBJMPEEBB:CMPCH,0JZCCMOVCH,0JMPCOLORCC:MOVJMPCOLOREE:CHUZHAN;恢復寄存器RETTRIANGLEENDP;----------------------------------------------------------;子程序,畫矩形RECTANGLEPROCNEARRUZHAN;保存寄存器;設置顯示方式;MOVAH,0;MOVAL,12H;INT10H;置光標初始位置MOVCX,1MOVAH,2MOVBH,0MOVDH,6MOVDL,6INT10H;光標右移,向右畫RIGHT:MOVAH,2;置光標位置INT10HMOVAH,9;9MOVAL,2AH;字符,'*'MOVBL,0FAH;字符屬性,背景為白,前景為紅;MOVCX,6INT10HINCDL;列數(shù)增加CMPDL,20JNERIGHT;當ZF為1時光標繼續(xù)右移,為0時跳轉JMPDOWN;光標下移,向下畫DOWN:MOVAH,2INT10HMOVAH,9MOVAL,2AHMOVBL,0FAH;MOVCX,6INT10HINCDHCMPDH,12JNZDOWNJMPLEFT;光標左移,向左畫LEFT:MOVAH,2INT10HMOVAH,9MOVAL,2AHMOVBL,0FAH;MOVCX,6INT10HDECDLCMPDL,6JNZLEFTJMPUP;光標上移,向上畫UP:MOVAH,2INT10HMOVAH,9MOVAL,2AHMOVBL,0FAH;MOVCX,6INT10HDECDHCMPDH,6JNZUP;**********************************************************;COLOUR2:MOVBH,0MOVBL,0CHANGE2:MOVINT21HCMPAL,0JNECCMPBL,0JNECHANGE2MOVAH,7MOVAL,14MOVCH,7MOVCL,7MOVDH,11MOVDL,19INT10HCALLDELAY;調(diào)用延時子程序ADDBH,0FHCMPBH,0F0HJNZCHANGE2JMPCOLOUR2C:MOVAH,07HINT21HCMPAL,'Q'JNEDJMPED:CMPBL,0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安置房爆破施工合同
- 建筑工程建設中的給排水管道防滲漏施工分析
- 石河子大學《園林綠地系統(tǒng)規(guī)劃》2022-2023學年第一學期期末試卷
- 國慶假期防溺水教育活動總結7篇
- 學校運動場改造施工組織設計
- 石河子大學《籃球教學訓練理論與實踐》2022-2023學年第一學期期末試卷
- 石河子大學《工業(yè)藥劑學》2023-2024學年第一學期期末試卷
- 石河子大學《健身指導與訓練》2021-2022學年第一學期期末試卷
- 沈陽理工大學《數(shù)字圖像處理技術》2022-2023學年期末試卷
- 沈陽理工大學《馬克思主義與社會科學方法論》2021-2022學年第一學期期末試卷
- 天文競賽復習題庫及答案
- 污泥( 廢水)運輸服務方案(技術方案)
- 公司章程范本杭州工商docx
- 職業(yè)院校面試題目及答案
- 全護筒跟進旋挖施工方案
- 海水淡化處理方案
- 初中數(shù)學基于大單元的作業(yè)設計
- 小學一年級下冊數(shù)學期末考試質量分析及試卷分析
- 原材料情況說明范本
- 《激發(fā)潛能超越自我》主題班會課件
- 機械制造課程設計-《機械制造工藝學》課程設計
評論
0/150
提交評論