绘图程序 - 李毅.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  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文档。上传文档
查看更多
绘图程序 - 李毅

程序设计实践 设 计 报 告 课题名称: 绘图程序 学生姓名: 李 毅 班 级: 2013211106 班内序号: 10 学 号: 2013210162 日 期: 2015年 课题概述 1.1课题目标和主要内容 (1)功能需求:能绘制由基本图元(点、线、圆、椭圆、文字)组成的各种图形或动画,可以响应鼠标事件(菜单项)。 (2)界面要求:应用程序提供用户区供绘图使用,用户去可以显示坐标轴、原点等。在界面上可以设置菜单,布置菜单项,按用户需求完成特定绘图功能,在绘图客户区可以显示坐标轴、原点等。 (3)开发平台:Windows。 主要工具:Visual Studio 2013 1.2系统的主要功能 用户可以通过菜单项选择绘时钟或者自己设计的一幅图,还有退出选项。 2. 系统设计 2.1 系统总体框架 程序的结构示意图 2.2 系统详细设计 *类关系图及描述 Draw类关系图: *程序流程图及描述 *存储结构、内存分配 Line, Point, Circle, Message,类的对象生成后存储在内存中,GraphicWindows类的对象生成后储存在静态存储区,均以顺序结构存储。 2.3 关键算法分析 算法1:时钟类 [1] 算法功能:画出时钟。 [2] 算法基本思想:由公式y=Rsin(2*pi*t/tm)和(2*pi*t/tm)算得时针分针秒针的端点 [3] 空间复杂度时间复杂度均为 for(i=0;i12;i++) { x=0.9*radius*sin(PI*i/6); y=0.9*radius*cos(PI*i/6); Point mPoint(x,y); pShape=mPoint; pShape-SetColor((RGB(100, 100, 100))); cwinmPoint; } /* 画表针 */ struct tm local; time_t t; // 获取系统日历时间 t=time(NULL); // 将日历时间转化为本地时间 localtime_s(local,t); x_s=0.89*radius*sin(PI*(local.tm_sec)/30); y_s=0.89*radius*cos(PI*(local.tm_sec)/30); x_m=0.7*radius*sin(PI*(local.tm_min)/30); y_m=0.7*radius*cos(PI*(local.tm_min)/30); x_h=0.5*radius*sin(PI*(local.tm_hour)/6); y_h=0.5*radius*cos(PI*(local.tm_hour)/6); Point hEnd(x_h,y_h),mEnd(x_m,y_m),sEnd(x_s,y_s); Line hLine(org,hEnd),mLine(org,mEnd),sLine(org,sEnd); hLine.SetColor((RGB(255,0,0))); // 红色 mLine.SetColor((RGB(0,255,0))); // 绿色 sLine.SetColor((RGB(255,255,0))); // 黄色 cwinhLinemLinesLineorg; } 算法2:绘图类(以画线为例) [1] 算法功能: 画出指定线(点、圆、椭圆、文字等) [2] 算法基本思想: 函数内使用windows自带函数接口进行组合绘画。 [3] 算法空间、时间复杂度分析:均为o(1). [4] 代码逻辑(以画线为例) void GraphicWindow::line(double xfrom,double yfrom,double xto,double yto,COLORREF mColor) { SelectObject(_hdc, CreatePen(PS_SOLID,2,mColor)); MoveToEx(_

文档评论(0)

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

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档