网站大量收购独家精品文档,联系QQ:2885784924

图形变换程序的设计.docxVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
?图形变换程序设计概述此图形转换程序主要是运用写显存的方式去实现。可以实现矩形、三角形和圆形的绘制及图形颜色变换。一、设计要求完成一个图形变换的程序,系统具有4种可选择的功能,按字母“y”画一个用点组成的圆;按字母“s”画一个用不同颜色填充的三角形;按字母“z”画一个用不同颜色填充的矩形;按“q”键退出。二、设计思想(一)、界面控制程序开始显示一行提示信息。键盘输入“y”进入画圆子程序,输入“s”进入画三角形子程序,输入“z”进入画矩形子程序。(二)、画圆通过写算法来确定圆边点的位置,利用写像素方式画出圆边点,用尽量多的点能较完整地表现出一个圆。算法首选确定圆心位置O(OX,OY),设置圆半径为Radius,圆边任一位置A(X,Y)可由圆心位置和圆半径及方向角θ(见下图)确定。本程序首先设立大概连续的多个数值(本程序为90个)以确定SINθ值及其相对应的COSθ值。A点位置可由以下表达式确定。?画圆算法解图X=SINθ*Radius+OXY=COSθ*Radius+OY由A点又可求出与其相关的三点A’,B,B’(见上图)。(三)、画三角形首先确定开始位置,然后通过行数和列数的变化一行一行地画三角形的分解部分。由设定的字符(本题为“*”)作为填充三角形元素,行数增1,字符数加2,依此往上画能形成三角形。三角形颜色的变换是在已画好图的基础上在图原位置重画,但改变相应字符的颜色。(四)画矩形在文本方式下首先利用字符(本题为“*”)的随光标的移动而显示画一个矩形框,然后通过设置卷屏(本题为下卷)区域为矩形框内部,改变确定区域的背景颜色即可完成矩形框的颜色变换。三、程序流程图(一)、主流程图?关键代码;主程序MAIN PROC FARASSUME DS:DATA,SS:STACK,CS:CODESTART:MOV AX,DATAMOV DS,AXINPUT:LEA DX,SYSINFO ;存偏移地址到DXCALL CL_SCREENCALL DISPLAY ;调用显示子程序;键盘输入MOV AH,8 ;键盘输入功能号(无回显)INT 21H ;调用DOS系统中断;----------------------------------;根据AL判断画哪个图CMP AL,YJZ CIRCLE1CMP AL,SJZ TRIANGLE1CMP AL,ZJZ TECTANGLE1;----------------------------------CMP AL,QJE EXIT ;键盘输入Q字符,退出CALL ERRORDISJMP INPUTCIRCLE1:CALL CIRCLEMOV AX,3 ;显示方式INT 10H ;调用BIOS中断JMP INPUTTRIANGLE1:CALL TRIANGLEJMP INPUTTECTANGLE1:CALL RECTANGLEJMP INPUTEXIT:CALL CL_SCREENMOV AH,4CH ;退出程序,返回DOSINT 21HMAIN ENDP ;主程序结束(二)、子程序画圆流程图(三)、子程序画三角形流程图注:通过光标的行号列号的改变来一行一行地画三角形的各部分。关键在于每画一行(写显存)在光标位置显示字符的个数应增加两个。让三角形变色就是重画一次三角形,字符属性值BL相应地改变。本程序BL从9变到15,三角形颜色从亮蓝变到亮黄。(四)子程序画矩形流程图四、程序源代码RUZHAN MACRO ;定义宏PUSH AXPUSH BXPUSH CXPUSH DXPUSH SIPUSH DIENDM ;结束宏CHUZHAN MACRO ;定义宏POP DIPOP SIPOP DXPOP CXPOP BXPOP AXENDM ;结束宏;----------------------------------------------------------DATA SEGMENT ;定义数据段SYSINFO DB PLEASE CHOOSE THE LETTER Y,S,Z DB INPUT Q TO QUIT,$MYINFO DB ????????????? DESIGN BY DAWNY? ,0DH,0AH,$ERRINFO DB CHOOSE ERROR!,$SINE DW 00,02,03,05,07,09,11,12,14,16 ;用于设定SIN函数值0到1DW 17,19,21,23,24,26,28,29,31,33DW 34,36,37,39,41,42,44,45,47,49DW 50,52,53,54,56,57,59,60,62,63DW 64,66,67,68,69,71,72,73,74,75DW 77,78,79,80,81,82,83,84,85,86DW 87,87,88

文档评论(0)

shaoye348 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档