- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机结课设计
郑州航空工业管理学院
微机原理与接口技术课程设计报告
题 目 图形变换程序设计
姓 名
学 号
同组成员
指导教师
年 月一.设计任务
完成一个图形变换的程序,系统具有4种可选择的功能,按“Y”画出一个用点组成的圆;按字母“S”画一个用颜色填充的三角形;按“Z”画一个用不同颜色填充的矩形,按“q”键退出。
程序流程图及设计思路
.界面控制
程序开始显示一行提示信息。键盘输入“y”进入画圆子程序,输入“s”进入画三角形子程序,输入“z”进入矩形圆子程序。
.画圆
通过写算法来确定圆边点位置,利用写像素方式画出圆边点,用尽量多的点能较完整地表现出一个圆。
算法
首选确定圆心位置O(OX,OY).设置圆半径为radius。圆边任一位置A(X.Y)可由圆心位置和圆半径及方向角确定。本程序首先设立大概连续的多个数值(本程序为90个)以确定SINX值以及相应的COSX 值,A点位置可由以下表达式确定。
X=SINX*radius+ox
Y=COSX8radius+OY
由A点又可求出与其相关的三点A’,B,B’
画三角型
首先确定开始位置,然后通过行数考核列数的变化一行一列的画三角形的分解部分有设定的字符(本题为“*”)作为填充三角形元素,行数增1,字符数加2依次往上画能形成三角形。
三角形颜色的变换是在已画好图的基础上在原位置重画,但改变相应字符的颜色
画矩形
在文本方式下首先利用字符(本题为“*”)的隋光标的移动而显示画一个矩形框,然后通过设置卷屏区域为矩形框内部,改变确定区域的背景颜色即可确定矩形框的颜色变换。
设计程序及其调试
程序框图
程序代码
DATAS SEGMENT COLOR DW 02 BKCOLOR DW 15 X DW 280, Y DW 240, RADIUS DW 150 DATAS ENDS STACKS SEGMENT DW 100 DUP(0) STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX MOV AX,0A000H MOV ES,AX MOV AX,0012H INT 10H ;设置640*480*16图形模式 MOV AL,2 CALL SET_WRITE_MODE ;将写模式设为写模式2 again:MOV AX,BKCOLOR CALL CLEAR ;将背景清成白色 MOV AX,WORD PTR [X] PUSH AX MOV AX,WORD PTR [Y] PUSH AX MOV AX,WORD PTR [RADIUS] PUSH AX CALL CIRCLE MOV AH,0 INT 16Hcmp al,0dh ;回车退出jz exit cmp ah,2eh;Key C or c jnz skip inc colorskip: jmp againquit: mov ah,4ch int 21hexit: MOV AX,4C00H INT 21H ;****************************************** ;640*480*16模式下的画点函数 ;****************************************** PIXEL PROC PUSH BP PUSH BX PUSH CX PUSH DS MOV BP,SP MOV AX,80 MOV BX,WORD PTR[BP+12] ;BX=Y MUL BX ;(DX:AX)=80*Y MOV BX,AX ; MOV AX,WORD PTR[BP+14] ;AX--X MOV CL,8 ; | | DIV CL ;AL=商(X/8),AH=余数(X%8) SP- | | MOV CL,AH ;CL=AH | DS |-BP MOV AH,0 ; | CX |-BP+2 ADD BX,AX ;BX(OFFSET)=80*Y+X/8 | BX |-BP+4 MOV AL,80H ; | BP |-BP+6 SHR AL,CL ;AL(MASK)=(80HCL) |返回地址|-BP+8 PUSH AX ; | COLOR |-BP+10 MOV DX,3CEH ; | Y
文档评论(0)