南通大学电气工程学院
微机原理课程设计
报告书
软件课题制作奥运五环效果
班级
学号
姓名
指导教师
日期 2011-11-23
一、奥运五环效果
设计目的
;
、运用资料的能力;
,深入了解与掌握DOS环境下图形生成方法。
设计内容和要求
查找资料,了解汇编语言编写图形方法,中点bresenharm算法原理,成像原理。生成奥运五环效果,并定时中断实现变色或闪烁。
设计原理
DOS环境下图形显示机理
BIOS 提供了相当丰富的显示功能调用,其显示功能集中在10H 号中断中,共有16 种不同的功能,每个功能有一个编号,对应的编号为00~0FH。当调用某个显示功能时,应根据需要设置好入口参数,把功能号置入AH寄存器中,然后发中断指令“INT10H”。与图形显示有关的子功能主要集中在如表1 几个功能号。
在图形方式下,屏幕以像素为单位。中分辨率下,屏幕可分成320*200=64000个像素点,每个像素有四种不同的显示颜色,背景有16种颜色;高分辨率下,屏幕分成640*200= 个像素点,只支持黑白两色。任何一个图形都可以看作是由点组成的,这些像素点“点亮”或“熄灭”,就构成相应的图形。
。
Bresenham画圆算法
Bresenham画圆算法又称中点画圆算法,与Bresenham 直线算法一样,其基本的方法是利用判别变量来判断选择最近的像素点,判别变量的数值仅仅用一些加、减和移位运算就可以计算出来。为了简便起见,考虑一个圆心在坐标原点的圆,而且只计算八分圆周上的点,其余圆周上的点利用对称性就可得到。
圆有“八对称性”,如下图所示。
显然,我们只需要知道了圆上的一个点的坐标(x, y) ,利用八对称性,我们马上就能得到另外七个对称点的坐标。
给出圆心的坐标(0, 0)和半径R,求圆图像的最佳逼近点。
我们求的八分之一圆孤为(0, R) -(R√2,R√2),可知最大位移方向是x方向,x0 = 0, y0 = R,每次对x自增,然后判断y是否减1,直到x >= y为止(从点(0, R)到圆的八分之一处就有这种情况)。误差量由F(x, y) = x^2 + y^2 - R^2给出。
先找递推关系,若当前d = F(x + 1, y - ) > 0,则y须减1,则下一d值为
d = F(x + 2, y - )
= (x + 2)^2 + (y - )^2 - R^2
= d + 2x - 2y + 5,
若当前d = F(x + 1, y - ) < 0,则y不变,只有x增1,则下一d值为
d = F(x + 2, y - )
= d + 2x + 3。
d的初值,d0 = F(1, R - ) = - R,则可以对d - ,因为递推关系中只有整数运算,所以d - > 0即d > ,这和d > 0等价,所以d取初值1 - R。
程序流程图与程序代码
流程图
确定第一个圆的圆心(x0,y0),半径r
设置显示方式
依次确定正面五环各环的像素值即颜色,调用单环绘制程序,完成正面五环
定时中断否?
依次确定反面五环各环的像素值即颜色,调用单环绘制程序,完成反面五环
程序源代码
data segment
m dw ?
n db ? ;像素颜色值
r dw 30 ;五环半径
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
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 circul
main endp
;*************五环绘制子程序***********
circul proc near
push si
mov ah,0
mov al,0dh
int 10h
制作奥运五环效果 来自淘豆网m.daumloan.com转载请标明出处.