版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、南通大學(xué)電氣工程學(xué)院微機(jī)原理課程設(shè)計(jì)報(bào) 告 書軟件課 題 制作奧運(yùn)五環(huán)效果 班 級(jí) 學(xué) 號(hào) 姓 名 指導(dǎo) 教師 日 期 2011-11-23 一、奧運(yùn)五環(huán)效果1.1 設(shè)計(jì)目的1.鞏固和加深課堂所學(xué)知識(shí);2.學(xué)習(xí)掌握一般的軟件的設(shè)計(jì)方法和查閱、運(yùn)用資料的能力;3.通過奧運(yùn)五環(huán)效果的設(shè)計(jì)與制作,深入了解與掌握dos環(huán)境下圖形生成方法。1.2 設(shè)計(jì)內(nèi)容和要求查找資料,了解匯編語言編寫圖形方法,中點(diǎn)bresenharm算法原理,成像原理。生成奧運(yùn)五環(huán)效果,并定時(shí)中斷實(shí)現(xiàn)變色或閃爍。1.3 設(shè)計(jì)原理1.3.1 dos環(huán)境下圖形顯示機(jī)理bios 提供了相當(dāng)豐富的顯示功能調(diào)用,其顯示功能集中在10h 號(hào)中斷
2、中,共有16 種不同的功能,每個(gè)功能有一個(gè)編號(hào),對(duì)應(yīng)的編號(hào)為000fh。當(dāng)調(diào)用某個(gè)顯示功能時(shí),應(yīng)根據(jù)需要設(shè)置好入口參數(shù),把功能號(hào)置入ah寄存器中,然后發(fā)中斷指令“int10h”。與圖形顯示有關(guān)的子功能主要集中在如表1 幾個(gè)功能號(hào)。在圖形方式下,屏幕以像素為單位。中分辨率下,屏幕可分成320*200=64000個(gè)像素點(diǎn),每個(gè)像素有四種不同的顯示顏色,背景有16種顏色;高分辨率下,屏幕分成640*200=128000 個(gè)像素點(diǎn),只支持黑白兩色。任何一個(gè)圖形都可以看作是由點(diǎn)組成的,這些像素點(diǎn)“點(diǎn)亮”或“熄滅”,就構(gòu)成相應(yīng)的圖形。1.3.2 bresenham畫圓算法bresenham畫圓算法又稱中點(diǎn)
3、畫圓算法,與bresenham 直線算法一樣,其基本的方法是利用判別變量來判斷選擇最近的像素點(diǎn),判別變量的數(shù)值僅僅用一些加、減和移位運(yùn)算就可以計(jì)算出來。為了簡(jiǎn)便起見,考慮一個(gè)圓心在坐標(biāo)原點(diǎn)的圓,而且只計(jì)算八分圓周上的點(diǎn),其余圓周上的點(diǎn)利用對(duì)稱性就可得到。 圓有“八對(duì)稱性”,如下圖所示。 顯然,我們只需要知道了圓上的一個(gè)點(diǎn)的坐標(biāo) (x, y) ,利用八對(duì)稱性,我們馬上就能得到另外七個(gè)對(duì)稱點(diǎn)的坐標(biāo)。 給出圓心的坐標(biāo)(0, 0)和半徑,求圓圖像的最佳逼近點(diǎn)。 我們求的八分之一圓孤為(0, r) -(r2,r2),可知最大位移方向是x方向,x0 = 0, y0 = r,每次對(duì)x自增,然后判斷y是否減1
4、,直到x = y為止(從點(diǎn)(0, r)到圓的八分之一處就有這種情況)。誤差量由(x, y) = x2 + y2 - r2給出。 先找遞推關(guān)系,若當(dāng)前d = f(x + 1, y - 0.5) 0,則y須減1,則下一d值為d = f(x + 2, y - 1.5) = (x + 2)2 + (y - 1.5)2 - r2 = d + 2x - 2y + 5,若當(dāng)前d = f(x + 1, y - 0.5) 0即d 0.25,這和d 0等價(jià),所以d取初值1 - r。1.4 程序流程圖與程序代碼1.41 流程圖確定第一個(gè)圓的圓心(x0,y0),半徑r設(shè)置顯示方式依次確定正面五環(huán)各環(huán)的像素值即顏色,調(diào)
5、用單環(huán)繪制程序,完成正面五環(huán)定時(shí)中斷否?依次確定反面五環(huán)各環(huán)的像素值即顏色,調(diào)用單環(huán)繪制程序,完成反面五環(huán)1.42 程序源代碼data segment m dw ? n db ? ;像素顏色值 r dw 30 ;五環(huán)半徑 x1 dw 80 ;第一個(gè)圓的圓心 y1 dw 80 x2 dw ? y2 dw ? x3 dw ? y3 dw ? x4 dw ? y4 dw ? x dw ? y dw ? d dw ? a dw ? b dw ? data ends code segment assume cs:code,ds:data main proc far start: mov ax,data
6、mov ds,ax ;mov si,0 mov di,0 mov si,x1 mov x3,si mov si,y1 mov y3,si mov si,0 call circulmain endp ;*五環(huán)繪制子程序* circul proc near push si mov ah,0 mov al,0dh int 10h ;*依次繪制正面五環(huán)* front: mov n,0eh;第一個(gè)環(huán),黃色 mov x,0 mov bx,r mov y,bx mov si,x3 mov x1,si mov si,y3 mov y1,si call single_circle mov n,0ah;第二個(gè)環(huán),
7、綠色 mov x,0 mov bx,r mov y,bx mov si,x3 mov x1,si mov si,y3 mov y1,si add y1,bx add y1,bx shr bx,1 add y1,bx call single_circle mov n,04h;第三個(gè)環(huán),紅色 mov x,0 mov bx,r mov y,bx mov si,x3 mov x1,si mov si,y3 mov y1,si add y1,bx add y1,bx add y1,bx add y1,bx add y1,bx call single_circle mov n,09h;第四個(gè)環(huán),藍(lán)色 mo
8、v x,0 mov bx,r mov y,bx mov si,x3 mov x1,si mov si,y3 mov y1,si add x1,bx add y1,bx shr bx,1 shr bx,1 add y1,bx call single_circle mov n,08h; 第五個(gè)環(huán),灰色 mov x,0 mov bx,r mov y,bx mov si,x3 mov x1,si mov si,y3 mov y1,si add x1,bx add y1,bx add y1,bx add y1,bx shr bx,1 add y1,bx shr bx,1 add y1,bx call s
9、ingle_circle jmp back;*繪制背面面各環(huán)* back: mov n,04h;第一個(gè)環(huán),紅色 mov x,0 mov bx,r mov y,bx mov si,x3 mov x1,si mov si,y3 mov y1,si call single_circle mov n,08;第二個(gè)環(huán),灰色 mov x,0 mov bx,r mov y,bx mov si,x3 mov x1,si mov si,y3 mov y1,si add y1,bx add y1,bx shr bx,1 add y1,bx call single_circle mov n,09h;第三個(gè)環(huán),藍(lán)色
10、mov x,0 mov bx,r mov y,bx mov si,x3 mov x1,si mov si,y3 mov y1,si add y1,bx add y1,bx add y1,bx add y1,bx add y1,bx call single_circle mov n,0ah;第四個(gè)環(huán),綠色 mov x,0 mov bx,r mov y,bx mov si,x3 mov x1,si mov si,y3 mov y1,si add x1,bx add y1,bx shr bx,1 shr bx,1 add y1,bx call single_circle mov n,0eh; 第五個(gè)
11、環(huán),黃色 mov x,0 mov bx,r mov y,bx mov si,x3 mov x1,si mov si,y3 mov y1,si add x1,bx add y1,bx add y1,bx add y1,bx shr bx,1 add y1,bx shr bx,1 add y1,bx call single_circle pop sicall delayjmp frontcircul endp ;*逐步進(jìn)給調(diào)整坐標(biāo),單環(huán)繪制* single_circle proc near mov si,1 sub si,r mov d,si ;d=1-r,x=0 lin3: mov si,x ;
12、si=x mov di,y ;di=y=r add si,x1 add di,y1 mov dx,si ;dx=si+x1 mov cx,di ;cx=di+y1 mov si,x ; mov di,y cmp si,di ;比較x與y,xy則八分之一圓弧繪制結(jié)束 jg lin call hua ;xy cmp d,0 ; jge lin1 ;mov si,2 mov ax,0 mov ax,si imul x mov si,ax add si,3 add d,si lin2: inc x jmp lin3 lin1: mov si,2 mov ax,0 mov ax,si mov di,x
13、sub di,y imul di mov si,ax add si,5 add d,si dec y jmp lin2 lin: ret single_circle endp huadian proc near ;寫像素,al=顏色值,bh=頁號(hào) mov ah,0ch mov al,n mov bh,0 int 10h ret huadian endp ;*八分法繪制圓環(huán)* hua proc near call huadian ;畫第一點(diǎn) (x,y) mov x2,dx mov y2,cx sub dx,x1 sub cx,y1 xchg dx,cx add dx,x1 add cx,y1 c
14、all huadian ;畫對(duì)稱點(diǎn)(y,x) mov dx,x2 mov cx,y2 sub cx,y1 sub dx,x1 xchg dx,cx mov m,dx add m,dx sub dx,m add dx,x1 add cx,y1 call huadian ;畫點(diǎn)(-y,x) sub cx,y1 mov m,cx add m,cx sub cx,m add cx,y1 call huadian ;畫點(diǎn)(-y,-x) mov dx,x2 mov cx,y2 sub dx,x1 sub cx,y1 mov m,cx add m,cx sub cx,m add cx,y1 add dx,x
15、1 call huadian ;畫點(diǎn) (x,-y) sub dx,x1 mov m,dx add m,dx sub dx,m add dx,x1 call huadian ;畫點(diǎn)(-x,-y) mov dx,x2 mov cx,y2 sub dx,x1 sub cx,y1 mov m,dx add m,dx sub dx,m add dx,x1 add cx,y1 call huadian ;畫點(diǎn) (-x,y) mov dx,x2 mov cx,y2 sub dx,x1 sub cx,y1 xchg dx,cx mov m,cx add m,cx sub cx,m add dx,x1 add cx,y1 call huadian ;畫點(diǎn) (y,-x) call delay ret hua endp ;*延時(shí)* delay proc near push dx push cx mov
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 體育用品采購合同審核
- 企業(yè)年會(huì)導(dǎo)演合作協(xié)議
- 員工發(fā)展與福利計(jì)劃
- 廣告?zhèn)髅蕉麻L(zhǎng)聘用協(xié)議樣本
- 財(cái)務(wù)報(bào)告保密協(xié)議管理辦法
- 頸椎病的診斷與治理
- 水利工程招投標(biāo)合同審查要點(diǎn)
- 售后服務(wù)管理評(píng)審修訂制度
- 電子競(jìng)技公司聘用合同范本
- 初級(jí)消防安全課件
- 四級(jí)翻譯完整版本
- 2024年酒店轉(zhuǎn)讓居間協(xié)議
- 小學(xué)生安全教育與自我保護(hù)能力培養(yǎng)研究課題研究方案
- 2024年福建省公務(wù)員錄用考試《行測(cè)》答案及解析
- 美麗農(nóng)村路建設(shè)指南DB41-T 1935-2020
- 2024年大學(xué)試題(計(jì)算機(jī)科學(xué))-網(wǎng)絡(luò)工程設(shè)計(jì)與系統(tǒng)集成考試近5年真題集錦(頻考類試題)帶答案
- 落實(shí)《中小學(xué)德育工作指南》制定的實(shí)施方案
- 2023年制藥設(shè)備行業(yè)分析報(bào)告及未來五至十年行業(yè)發(fā)展報(bào)告
- 期中測(cè)試卷(試題)-2024-2025學(xué)年三年級(jí)上冊(cè)語文統(tǒng)編版
- 醫(yī)學(xué)教材打印版護(hù)士首次執(zhí)業(yè)注冊(cè)體檢表
- 《月圓中秋節(jié):1 對(duì)月當(dāng)歌》教學(xué)設(shè)計(jì)-2024-2025學(xué)年五年級(jí)上冊(cè)綜合實(shí)踐活動(dòng)滬科黔科版
評(píng)論
0/150
提交評(píng)論