一题目环图设计.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一题目环图设计.doc

一:题目:环图设计 要求:在屏幕上画出彩色的五环图,每个环(圆)上一种颜色,每个圆的圆心坐标和半径在程序中指定。 二:分析(用到的知识点) 用dos 9号功能显示字符串 用BIOS的INT 10中AH=0号功能,设置显示方式。AL=13(320*200 , 256色图形显示方式VGA) 用BIOS的INT 10中AH=6号功能,设置清屏。AL=0全屏幕为空白,BH=7,CX=0,DX=184FH清屏 用BIOS 的INT 10中AH=2号功能,设置光标位置,BH=0为页号。 用BIOS的INT 10中AH=0C号功能,写像素,AL=颜色值,BH=页号,DX/CX=像素行/列。 用到计算机图形学中Bresenham算法关于画圆的知识。 三:设计思想 Bresenham算法的解释 (x,y)为数学中点的坐标。在x=y到y=0的圆弧中,(R,0)点比在圆弧上,算法从该点开始。 由(R,0)点开始,y渐增,x渐减,每次y方向加1,x方向减1或减0。 设P点坐标(xi,yi),下一个候选点为右点Pr(xi,yi+1)和左点Pl(xi-1,yi+1), 取Pl和Pr的中点M(xi-0.5,yi+1),设理想圆与 y=yi+1的交点Q, 构造判别式: d=f(xM,yM)=(x-0.5)2+(yi+1)2-R2 当d0时,M在Q点左方(Q在M右),取右点Pr(xi,yi+1) 当d0时,M在Q点右方(Q在M左),取左点Pl(xi-1,yi+1) 当d=0时,M与Q点重合,约定取左点Pl(xi-1,yi+1) 推导判别式: d=0时,取左点Pl(xi-1,yi+1),下一点为(xi-1,yi+2)和(xi-2,yi+2) d2=f(xi-1.5,yi+2)=(xi-1.5)2+(yi+2)2-R2=d1-2xi+2yi+5 d0时,取右点Pr(xi,yi+1),下一点为(xi,yi+2)和(xi-1,yi+2) d2=f(xi-0.5,yi+2)=(xi-0.5)2+(yi+1)2-R2=d1+2yi+3 d0=f(R,0)=R2-R+0.25+1-R2=1.25-R 整个设计过程的说明: 在五环程序设计中,使用主程序,子程序设计模式。主程序main,子程序程序有Set-mode, Set-cursor, Set-color ,Circle, Pan-direction ,Huayuan ,Dian, Delay 。 ①在Circle子程序中,分别设置五个圆的坐标,其中x代表行,y代表列。Yuan1的坐标为(x1,y1),Yuan2的坐标为(x1,y1+2.5R),Yuan3的坐标为(x1,y1+5R),Yuan4的坐标为(x1+R,y1+1.25R),Yuan5的坐标为(x1+R,y1+3.75R) ②在Pan-direction子程序中,用Bresenham算法,来判断如何取点。其中d为修正值。D初始化为1-R,x初始化为0,y初始化为25R。每次y逐次减1,x逐次加1.当x增加到y时跳出。若D0,D=D+2(x-y)+5;若D0,D=D+2x+3。 ③在Huayuan子程序中,描绘8个点,每画一个点时,根据对称,其他7个点也画出。 ④在Dian子程序中,为了显示清晰,调用6次Set_color加深线条。其中dx代表行,cx代表列 Delay是一个画圆的延时程序, 3. 主要流程图 主程序流程图 Circle子程序 开始开始 开始 开始 调用Clear实现清屏Yuan1坐标行/列为X1,Y1 调用Clear实现清屏 Yuan1坐标行/列为X1,Y1 调用 调用Set_mode设置图形显示方式 调用 调用Pan_direction 显示 显示STRING1 Yuan2 Yuan2坐标x1?x1, Y1?y1+2.5R 调用 调用Set_cursor置光标 调用 调用Pan_direction 显示 显示STRING2 Yuan3 Yuan3坐标X1?X1 Y1?Y1+5R 从键盘输入一个字符 从键盘输入一个字符 调用Pan_direction 调用Pan_direction 是否为 是否为q 否 Yuan4坐标X1 Yuan4坐标X1?X1+R Y1?Y1+1.25R 否 调用Circle子程序 调用Circle子程序 调用 调用Pan_direction 结束

文档评论(0)

yanzhaoqiang + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档