汇编程序画圆算法

汇编程序画圆算法

ID:47481856

大小:204.50 KB

页数:12页

时间:2020-01-11

汇编程序画圆算法_第1页
汇编程序画圆算法_第2页
汇编程序画圆算法_第3页
汇编程序画圆算法_第4页
汇编程序画圆算法_第5页
资源描述:

《汇编程序画圆算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、仲恺农业工程学院汇编语言程序设计课程设计报告画圆算法班级:计算机143学号:姓名:起止时间:2016年12月19日-12月30日指导老师:信息科学与技术学院计算机系12评分表自评分数教师评分人机界面总分20分主体功能总分30分健壮性与代码可读性总分10%文档格式与内容总分20分考勤总分20分教师签名:日期:12目录1功能分析52系统设计63系统测试84系统优缺点分析及心得体会95程序代码912121功能分析画圆算法,程序的主要功能是在屏幕上画一个圆,具体圆的半径和圆的中心是已设计好的,具体的程序工作流程如下。图1程序工作流程图122系统

2、设计画圆算法是一个算法,本程序采用的是圆的代数式(x-X)^2+(y-Y)^2=R^2,其中(X,Y)是圆心坐标,(x,y)是当前坐标,R是圆的半径,通过这一式子,判断一个像素点在圆内还是在圆外,可以计算出(x-X)^2+(y-Y)^2,判断其结果与R^2的大小,如果小于半径的平方则该像素点在圆内,写入像素,如果大于像素点在圆外,不写像素点并将横坐标加1,如果横坐标小于画布边界继续处理像素,否则纵坐标加1跳到下一行进行处理。本程序还涉及求绝对值的平方,如求(x-X)^2,当前坐标x值可能大于X,也可能小于X,故x-X可能是正数也可能是负

3、数,但是平方以后肯定是一个正数,故不用考虑计算出负数的结果,而是直接计算两个数之差的绝对值再平方。注意:程序设置的画布大小为200*200像素,像素坐标从(0,0)点开始扫描,且坐标点只有正值,故横纵坐标要大于半径,否则画出的圆将不完整。具体算法实现流程图如下:12图2算法实现流程图123系统测试测试结果:图3测试结果1图3测试结果2124系统优缺点分析及心得体会5程序代码DATASEGMENTXDW?;圆心X坐标YDW?;圆心Y坐标RDW?;半径RRDW?;半径的平方BORDERDW200;画布边界MSG1DB"PLEASEINPUT

4、CIRCLECENTERX:$"MSG2DB0DH,0AH,"PLEASEINPUTCIRCLECENTERY:$"MSG3DB0DH,0AH,"PLEASEINPUTCIRCLERADIUS:$"DATAENDSCODESSEGMENTASSUMECS:CODES,DS:DATAMAINPROCFARMOVAX,DATAMOVDS,AXLEADX,MSG1;显示提示信息1MOVAH,9INT21HMOVCX,0;输入X坐标CALLINPUTMOVX,CXLEADX,MSG2;显示提示信息2MOVAH,9INT21HMOVCX,0;输入

5、Y坐标CALLINPUTMOVY,CXLEADX,MSG3;显示提示信息3MOVAH,9INT21HMOVCX,0;输入半径CALLINPUTMOVR,CX12MOVAX,0;求R的平方MOVAX,CXMULAXMOVRR,AXMOVAX,0600H;利用INT10H的功能6清屏MOVBH,7;白底黑字MOVCX,0;左上顶点为(0,0)MOVDX,7070H;右下顶点为(70H,70H)INT10HMOVAH,0FH;读取当前的显示模式INT10HPUSHAX;压入堆栈保存MOVAH,00H;设置显示模式为12HMOVAL,12HIN

6、T10H;设当前坐标为(x,y),圆心坐标为(X,Y),半径为RMOVDX,0;从(0,0)点开始处理像素AGAIN:MOVCX,0AGAIN_X:PUSHCXPUSHDXCMPCX,X;x与X比较,小于是X-xJBXBELOWSUBCX,X;大于是x-XJMPXSQUAREXBELOW:MOVBX,XSUBBX,CXMOVCX,BX;求当前横坐标与圆心横坐标之差的绝对值的平方XSQUARE:MOVAX,CXMULCXMOVCX,AXAGAIN_Y:12POPDXPUSHDXCMPDX,Y;y与Y比较,小于是Y-yJBYBELOWSUB

7、DX,Y;大于是y-YJMPYSQUAREYBELOW:MOVBX,YSUBBX,DXMOVDX,BX;求当前纵坐标与圆心纵坐标之差的绝对值的平方YSQUARE:MOVAX,DXMULDXMOVDX,AXHANDLE:ADDCX,DX;求两个绝对值平方的和给BX,即(x-X)^2+(y-Y)^2MOVBX,CXPOPDXPOPCXCMPBX,RR;与半径平方作比较,小于表示在圆内则写入像素,大于表示在圆外跳到LASTJALAST;AH=0CH写像素功能;DX像素行;CX像素列;BX显示页号;AL像素颜色值MOVAH,0CHMOVAL,1

8、MOVBH,0INT10HLAST:INCCX;当前横坐标加1CMPCX,BORDER;未到达画布右边界则继续继续处理这一行下一个像素JBAGAIN_XINCDX;当前纵坐标加1,即换行CMPDX,BORD

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。