图形变换程序设计Word文档格式.docx
- 文档编号:15016685
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:11
- 大小:21.99KB
图形变换程序设计Word文档格式.docx
《图形变换程序设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《图形变换程序设计Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
由A点又可求出与其相关的三点A’,B,B’(见上图)。
(三)、画三角形
首先确定开始位置,然后通过行数和列数的变化一行一行地画三角形的分解部分。
由设定的字符(本题为“*”)作为填充三角形元素,行数增1,字符数加2,依此往上画能形成三角形。
三角形颜色的变换是在已画好图的基础上在图原位置重画,但改变相应字符的颜色。
(四)画矩形
在文本方式下首先利用字符(本题为“*”)的随光标的移动而显示画一个矩形框,然后通过设置卷屏(本题为下卷)区域为矩形框内部,改变确定区域的背景颜色即可完成矩形框的颜色变换。
三、程序流程图
(一)、主流程图
关键代码
;
主程序
MAINPROCFAR
ASSUMEDS:
DATA,SS:
STACK,CS:
CODE
START:
MOVAX,DATA
MOVDS,AX
INPUT:
LEADX,SYSINFO;
存偏移地址到DX
CALLCL_SCREEN
CALLDISPLAY;
调用显示子程序
键盘输入
MOVAH,8;
键盘输入功能号(无回显)
INT21H;
调用DOS系统中断
----------------------------------
根据AL判断画哪个图
CMPAL,'
Y'
JZCIRCLE1
S'
JZTRIANGLE1
Z'
JZTECTANGLE1
Q'
JEEXIT;
键盘输入'
字符,退出
CALLERRORDIS
JMPINPUT
CIRCLE1:
CALLCIRCLE
MOVAX,3;
显示方式
INT10H;
调用BIOS中断
TRIANGLE1:
CALLTRIANGLE
TECTANGLE1:
CALLRECTANGLE
EXIT:
MOVAH,4CH;
退出程序,返回DOS
INT21H
MAINENDP;
主程序结束
(二)、子程序画圆流程图
(三)、子程序画三角形流程图
注:
通过光标的行号列号的改变来一行一行地画三角形的各部分。
关键在于每画一行(写显存)在光标位置显示字符的个数应增加两个。
让三角形变色就是重画一次三角形,字符属性值BL相应地改变。
本程序BL从9变到15,三角形颜色从亮蓝变到亮黄。
(四)子程序画矩形流程图
四、程序源代码
RUZHANMACRO;
定义宏
PUSHAX
PUSHBX
PUSHCX
PUSHDX
PUSHSI
PUSHDI
ENDM;
结束宏
CHUZHANMACRO;
POPDI
POPSI
POPDX
POPCX
POPBX
POPAX
----------------------------------------------------------
DATASEGMENT;
定义数据段
SYSINFODB'
PLEASECHOOSETHELETTERY,S,Z&
'
DB'
INPUTQTOQUIT'
'
$'
MYINFODB'
DESIGNBYDAWNY
'
0DH,0AH,'
ERRINFODB'
CHOOSEERROR!
SINEDW00,02,03,05,07,09,11,12,14,16;
用于设定SIN函数值0到1
DW17,19,21,23,24,26,28,29,31,33
DW34,36,37,39,41,42,44,45,47,49
DW50,52,53,54,56,57,59,60,62,63
DW64,66,67,68,69,71,72,73,74,75
DW77,78,79,80,81,82,83,84,85,86
DW87,87,88,89,90,91,91,92,93,93
DW94,95,95,96,96,97,97,97,98,98
DW98,99,99,99,99,100,100,100,100
DW100,100
MMDW?
;
定义操作数为字的助记符MM代表像素点的列增量(为正)
F_MMDW?
定义操作数为字的助记符MM代表像素点的列增量(为负)
NN
DW?
定义操作数为字的助记符NN代表像素点的行增量(为正)
F_NNDW?
定义操作数为字的助记符NN代表像素点的行增量(为负)
OXEQU120;
圆中心的列像素
OYEQU240;
圆中心的行像素
RADIUSDW60;
圆的半径
COLOURDB2;
圆边的颜色
KKDW100
COUNTDB90
DATAENDS
CODESEGMENT;
定义代码段
置光标位置
MOVAH,2;
置光标功能号
MOVBH,0;
页号
MOVDH,0;
行号
MOVDL,20;
列号
子程序,显示DS中内容
DISPLAYPROCNEAR
MOVAH,9
RET
DISPLAYENDP
子程序,显示错误信息
ERRORDISPROCNEAR
RUZHAN
CONTIUNE:
MOVAH,2
MOVBH,0
MOVDH,12
MOVDL,30
INT10H
LEADX,ERRINFO;
检验键盘状态
MOVAH,0BH;
功能号,返回参数AL
CMPAL,0
JETMP
键盘输入,无回显
MOVAH,07H;
功能号
TMP:
JZCONTIUNE
CHUZHAN
ERRORDISENDP
子程序,清屏
CL_SCREENPROCNEAR
MOVAH,7;
卷屏功能号
MOVAL,0;
初始化屏幕
MOVBH,7;
卷入行属性,上此处为正常显示
MOVCH,0;
左上角行号
MOVCL,0;
左上角列号
MOVDH,24;
右下角行号
MOVDL,79;
右下角列号
CL_SCREENENDP
子程序,画圆
CIRCLEPROCNEAR
RUZHAN;
调用宏,保存寄存器
CALLSCREEN;
调用屏幕子程序
MOVCOUNT,90
MOVSI,OFFSETSINE+89*2;
转化为用于设定COS函数值1到0
MOVDI,OFFSETSINE
AGAIN:
CALLCOMPUTE;
调用计算圆边像素点
CALLWRITE;
描圆边
SUBSI,2;
SI与源操作数相减
ADDDI,2;
DI与源操作数相加
DECCOUNT
JNZAGAIN;
标志符ZF不为0跳转
CHUZHAN;
调用宏,恢复寄存器
CIRCLEENDP
子程序,设置屏幕
SCREENPROCNEAR
MOVAX,12H;
置彩色调板
MOVBX,0;
BH为彩色调色板ID,BL为ID配套使用的颜色
SCREENENDP
子程序,计算圆边像素点
COMPUTEPROCNEAR
MOVAX,[SI];
地址SI所指向内容赋给AX,SI++依次得到所有圆边点
MULRADIUS;
目的操作数AX与源操作数RADIUS相乘,结果放AX
DIVKK;
得到圆边像素点的列位置
MOVMM
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图形 变换 程序设计