课程设计--简单图形的处理系统

课程设计--简单图形的处理系统

ID:9856600

大小:299.50 KB

页数:13页

时间:2018-05-12

课程设计--简单图形的处理系统_第1页
课程设计--简单图形的处理系统_第2页
课程设计--简单图形的处理系统_第3页
课程设计--简单图形的处理系统_第4页
课程设计--简单图形的处理系统_第5页
资源描述:

《课程设计--简单图形的处理系统》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、信息科学与技术学院程序设计基础课程设计报告题目名称:简单图形的处理系统学生姓名:万千学号:专业班级:计算机科学与技术11级2班指导教师:郭理2012年6月30日目录1课程设计题目31.1设计题目31.2设计要求32.总体设计33详细设计51.1数据结构设计:54运行结果85课程设计总结12参考文献:131课程设计题目1.1设计题目设某图形处理程序只考虑点、直线、圆三种基本图形。对于点,给出点的横纵坐标;对于直线,给出方程ax+by+c=0的三个系数a,b,c;对于圆,给出圆心坐标和半径。试说明图形的几何形状类型,并编写输入和输出图形数据、求两点距离、求两直线交点、已知点和半径形成圆

2、、已知两点形成直线等函数。1.2设计要求根据系统的功能要求,可以将问题解决分为以下步骤:(1)分析系统中的各个实体之间的关系及其属性和行为;(2)根据问题描述,设计各系统的类层次;(3)完成类层次中各个类的描述(包括属性和方法);(4)完成类中各个成员函数的定义;(5)完成系统应用模块;(6)功能调试;(7)完成系统总结报告以及系统使用说明书。其他要求:(1)只能采用C/C++语言,源程序要有适当的注释,使程序容易阅读(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)(3)学生可自动增加新功能模块(视情况可另外加分)2.总体设计程序的总体框架图如下:简单图形处理系统点数据的处

3、理直线数据处理圆数据的生成2D3D2D2D其中二维空间的点数据处理模块包括以下几个功能:(1)求点到原点的距离;(2)给出两点确定一个方向向量;(3)求两点间的距离;(4)将点旋转一定角度后得到新的点;(5)把点按某方向向量平移后得到新的点。三维空间的点数据处理模块包括以下几个功能:(1)给出一个方向轴,绕该方向轴旋转一定角度后得到新的点;(2)按方向向量平移后得到新的点;(3)求两点距离;(4)求点到原点的距离二维空间上的直线处理包括以下几个功能:(1)给出两点求直线方程;(2)将直线绕某定点旋转一定的角度得到新的直线方程;(3)直线平移得到新的直线方程;(4)求两直线夹角;(5

4、)求直线的方向余弦角;(6)判断两直线的位置关系;(7)求直线交点。二维空间内的圆数据生成方式为:给出圆心和半径,求出圆面积和圆心到直线的距离。3详细设计1.1数据结构设计:类层次图如下:V2D_point二维点类circle三维圆类V3D_point三维点类V2D_line二维直线类二维点类中包含两个数据成员,就是点的横坐标及纵坐标;三维点类中新增加了z轴坐标,和用来做三维点变换的思维数组,以及变换的比例因子;圆类中增加了一个半径数据成员。二维直线中包含两个点数据成员,一个点代表直线所过的某一定点,一个代表着直线的方向向量。3.2主模块设计二维点类中有这些成员函数(或友元函数):

5、(1)V2D_point():time(){x=0,y=0,R=0,G=0,B=0;}//默认初始化构造函数,所有数据成员初始值为0,RGB是我另外加的数据成员,主模块中不设计,time也是一个数据成员;(2)V2D_point(longdoublei,longdoublej):x(i),y(j),time(){R=0,G=0,B=0;}//带参数的初始化构造函数,用来初始化横纵坐标;(1)longdoublegetX()const{returnx;}//用来得到数据成员x的值;(2)longdoublegetY()const{returny;}//用来得到数据成员y的值;(3)f

6、riendostream&operator<<(ostream&,constV2D_point&);//重载了流插入运算符,用来输出一个点的坐标;(4)friendistream&operator>>(istream&,V2D_point&);//重载了流提取运算符,用来输入一个点的数据成员;(5)virtualV2D_pointdirection(constV2D_point&);//用来求两点确定的方向向量,参数为一个二维点对象,返回一个二维点对象;(6)voidrevolve(longdouble);//用来旋转点,入口参数是旋转角度,改变了当前对象点的位置,无返回值;(7)

7、virtualvoidsetpoint(longdouble,longdouble);//用来重新设置点的坐标,前一参数传递给横坐标,后一参数传递给纵坐标;(8)virtualvoidcarrypoint(longdouble,longdouble);//按方向向量移动点的位置,前一参数为方向向量的横坐标,后一参数为方向向量的纵坐标;(9)virtualvoidshowpoint()const;//用来显示点坐标,和重载的流插入运算符相同的功能;(10)virtual

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

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

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