版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、南通大學(xué)電氣工程學(xué)院微機(jī)原理課程設(shè)計(jì)報(bào) 告 書軟件課 題 制作奧運(yùn)五環(huán)效果 班 級 學(xué) 號 姓 名 指導(dǎo) 教師 日 期 2011-11-23 一、奧運(yùn)五環(huán)效果1.1 設(shè)計(jì)目的1.鞏固和加深課堂所學(xué)知識;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 號中斷
2、中,共有16 種不同的功能,每個功能有一個編號,對應(yīng)的編號為000fh。當(dāng)調(diào)用某個顯示功能時(shí),應(yīng)根據(jù)需要設(shè)置好入口參數(shù),把功能號置入ah寄存器中,然后發(fā)中斷指令“int10h”。與圖形顯示有關(guān)的子功能主要集中在如表1 幾個功能號。在圖形方式下,屏幕以像素為單位。中分辨率下,屏幕可分成320*200=64000個像素點(diǎn),每個像素有四種不同的顯示顏色,背景有16種顏色;高分辨率下,屏幕分成640*200=128000 個像素點(diǎn),只支持黑白兩色。任何一個圖形都可以看作是由點(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ì)算出來。為了簡便起見,考慮一個圓心在坐標(biāo)原點(diǎn)的圓,而且只計(jì)算八分圓周上的點(diǎn),其余圓周上的點(diǎn)利用對稱性就可得到。 圓有“八對稱性”,如下圖所示。 顯然,我們只需要知道了圓上的一個點(diǎn)的坐標(biāo) (x, y) ,利用八對稱性,我們馬上就能得到另外七個對稱點(diǎn)的坐標(biāo)。 給出圓心的坐標(biāo)(0, 0)和半徑,求圓圖像的最佳逼近點(diǎn)。 我們求的八分之一圓孤為(0, r) -(r2,r2),可知最大位移方向是x方向,x0 = 0, y0 = r,每次對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 流程圖確定第一個圓的圓心(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 ;第一個圓的圓心 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;第一個環(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;第二個環(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;第三個環(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;第四個環(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; 第五個環(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;第一個環(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;第二個環(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;第三個環(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;第四個環(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; 第五個
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=頁號 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 ;畫對稱點(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等.壓縮文件請下載最新的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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 我和我的父輩觀后感(15篇)
- 徐工研究院安全培訓(xùn)
- 達(dá)格列凈片聯(lián)合麝香保心丸治療射血分?jǐn)?shù)降低心衰急性發(fā)作期的臨床觀察
- 年會普通員工獲獎感言范文(10篇)
- 中國工業(yè)機(jī)器人減速器行業(yè)市場集中度、企業(yè)競爭格局分析報(bào)告-智研咨詢發(fā)布
- 二零二五年度公共安全產(chǎn)品投標(biāo)委托合同3篇
- 二零二五年度個人向文化企業(yè)貸款協(xié)議模板2篇
- BDS-GNSS實(shí)時(shí)精密星歷完好性監(jiān)測方法研究
- 老年骨質(zhì)疏松性椎體壓縮骨折非手術(shù)治療進(jìn)展
- 二零二五年度新型門窗安裝與市場推廣合作協(xié)議3篇
- 小學(xué)六年級數(shù)學(xué)上冊《簡便計(jì)算》練習(xí)題(310題-附答案)
- 培訓(xùn)如何上好一堂課
- 高教版2023年中職教科書《語文》(基礎(chǔ)模塊)下冊教案全冊
- 2024醫(yī)療銷售年度計(jì)劃
- 稅務(wù)局個人所得稅綜合所得匯算清繳
- 人教版語文1-6年級古詩詞
- 上學(xué)期高二期末語文試卷(含答案)
- 人教版英語七年級上冊閱讀理解專項(xiàng)訓(xùn)練16篇(含答案)
- 死亡病例討論模板
- 宜城安達(dá)特種水泥有限公司雙寨子礦區(qū)鋁土礦礦產(chǎn)資源開發(fā)利用與生態(tài)復(fù)綠方案
- 面向機(jī)器人柔順操作的力位精準(zhǔn)控制方法
評論
0/150
提交評論