




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
仲恺农业工程学院汇编语言程序设计课 程 设 计 报 告画圆算法 班 级:计算机143 学 号: 姓 名: 起止时间: 2016年12月19日-12月30日 指导老师:信息科学与技术学院计算机系评分表自评分数教师评分人机界面总分20分主体功能总分30分健壮性与代码可读性总分10%文档格式与内容总分20分考勤总分20分 教师签名: 日期:目 录1 功能分析52 系统设计63 系统测试84 系统优缺点分析及心得体会95 程序代码91 功能分析画圆算法,程序的主要功能是在屏幕上画一个圆,具体圆的半径和圆的中心是已设计好的,具体的程序工作流程如下。图1 程序工作流程图2 系统设计画圆算法是一个算法,本程序采用的是圆的代数式(x-X)2+(y-Y)2=R2,其中(X,Y)是圆心坐标,(x,y)是当前坐标,R是圆的半径,通过这一式子,判断一个像素点在圆内还是在圆外,可以计算出(x-X)2+(y-Y)2,判断其结果与R2的大小,如果小于半径的平方则该像素点在圆内,写入像素,如果大于像素点在圆外,不写像素点并将横坐标加1,如果横坐标小于画布边界继续处理像素,否则纵坐标加1跳到下一行进行处理。本程序还涉及求绝对值的平方,如求(x-X)2,当前坐标x值可能大于X,也可能小于X,故x-X可能是正数也可能是负数,但是平方以后肯定是一个正数,故不用考虑计算出负数的结果,而是直接计算两个数之差的绝对值再平方。注意:程序设置的画布大小为200*200像素,像素坐标从(0,0)点开始扫描,且坐标点只有正值,故横纵坐标要大于半径,否则画出的圆将不完整。具体算法实现流程图如下:图2 算法实现流程图3 系统测试测试结果:图3 测试结果1图3 测试结果24 系统优缺点分析及心得体会5 程序代码DATA SEGMENTX DW ?;圆心X坐标Y DW ?;圆心Y坐标R DW ?;半径RR DW ?;半径的平方BORDER DW 200;画布边界MSG1 DB PLEASE INPUT CIRCLE CENTER X:$MSG2 DB 0DH,0AH,PLEASE INPUT CIRCLE CENTER Y:$MSG3 DB 0DH,0AH,PLEASE INPUT CIRCLE RADIUS:$DATA ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAMAIN PROC FAR MOV AX,DATA MOV DS,AX LEA DX,MSG1;显示提示信息1 MOV AH,9 INT 21H MOV CX,0;输入X坐标 CALL INPUT MOV X,CX LEA DX,MSG2;显示提示信息2 MOV AH,9 INT 21H MOV CX,0;输入Y坐标 CALL INPUT MOV Y,CX LEA DX,MSG3;显示提示信息3 MOV AH,9 INT 21H MOV CX,0;输入半径 CALL INPUT MOV R,CX MOV AX,0;求R的平方 MOV AX,CX MUL AX MOV RR,AX MOV AX,0600H;利用INT 10H的功能6清屏 MOV BH,7;白底黑字 MOV CX,0;左上顶点为(0,0) MOV DX,7070H;右下顶点为(70H,70H) INT 10H MOV AH,0FH;读取当前的显示模式 INT 10H PUSH AX;压入堆栈保存 MOV AH,00H;设置显示模式为12H MOV AL,12H INT 10H ;设当前坐标为(x,y),圆心坐标为(X,Y),半径为R MOV DX,0;从(0,0)点开始处理像素AGAIN: MOV CX,0AGAIN_X: PUSH CX PUSH DX CMP CX,X;x与X比较,小于是X-x JB XBELOW SUB CX,X;大于是x-X JMP XSQUAREXBELOW: MOV BX,X SUB BX,CX MOV CX,BX ;求当前横坐标与圆心横坐标之差的绝对值的平方XSQUARE: MOV AX,CX MUL CX MOV CX,AXAGAIN_Y: POP DX PUSH DX CMP DX,Y;y与Y比较,小于是Y-y JB YBELOW SUB DX,Y;大于是y-Y JMP YSQUAREYBELOW: MOV BX,Y SUB BX,DX MOV DX,BX ;求当前纵坐标与圆心纵坐标之差的绝对值的平方YSQUARE: MOV AX,DX MUL DX MOV DX,AXHANDLE: ADD CX,DX;求两个绝对值平方的和给BX,即(x-X)2+(y-Y)2 MOV BX,CX POP DX POP CX CMP BX,RR;与半径平方作比较,小于表示在圆内则写入像素,大于表示在圆外跳到LAST JA LAST ;AH=0CH 写像素功能 ;DX 像素行 ;CX 像素列 ;BX 显示页号 ;AL 像素颜色值 MOV AH,0CH MOV AL,1 MOV BH,0 INT 10HLAST: INC CX ;当前横坐标加1 CMP CX,BORDER;未到达画布右边界则继续继续处理这一行下一个像素 JB AGAIN_X INC DX ;当前纵坐标加1,即换行 CMP DX,BORDER;未达到画布下边界则开始下一行像素的处理 JB AGAIN MOV AH,01H;暂停 INT 21H POP AX ;恢复原来的显示模式 MOV AH,0 INT 10H MOV AX,4C00H INT 21HMAIN ENDP;输入子程序,将键盘获取的字符转换成数字INPUT PROC NEARNEXT:MOV AH,1INT 21HCMP AL,0DHJZ R1CMP AL,0AHJZ R1CMP AL,0JB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 森林生态补偿与林权流转合作协议
- 网络影视作品版权代理合作协议
- 绿色建筑电气系统设计、安装及性能验收协议
- 重型工业仪器定期校准认证与风险评估合同
- 生物制药洁净厂房空气净化系统租赁与安全检测合同
- 航空货运代理航空货物清关代理承包协议
- 海外留学行李保险与全球托运质量监管协议
- 《社会保险知识普及教学课件》
- 《慢性肾衰竭》课件2
- 《农业机械操作培训》课件
- 有限空间作业气体检测记录表
- 出货检验报告
- 高分子材料完整版课件
- DB37∕T 5118-2018 市政工程资料管理标准
- 无机材料科学基础-第3章-晶体结构与晶体中的缺陷
- 油水井管理及动态分析.
- 水稻脱粒机毕业设计毕业设计
- 完整版电力工程设计资质分级标准
- 硬笔书法练习用纸A4打印模板
- 中国民用航空通信导航监视系统运行、维护规程
- 5000吨干货船设计总体方案及第三部分
评论
0/150
提交评论