- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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(_
您可能关注的文档
- 第四章风电场无功补偿4.ppt
- 等离子体气动激励建模仿真综述.pdf
- 算术编码在图像压缩中的应用.pdf
- 算法设计与分析第五章1.ppt
- 管子“心术”与阳明“心学”思想之比较初探.pdf
- 第四部分 地理怎样练.ppt
- 管理与配置DHCP服务.doc
- 管理信息系统七.ppt
- 管理信息系统第五章3.ppt
- 管理学2016.3.ppt
- 汉服品牌文化认同度消费者行为分析:2025年市场研究报告.docx
- 2025年公共图书馆数字化服务与青少年阅读引导研究.docx
- 2025年智能健身镜用户运动数据在健身赛事组织与管理中的应用分析.docx
- 数码产品电商品牌运营策略2025年市场拓展与渠道建设分析报告.docx
- 2025年共享自习室空间布局优化与学习效率提升方案.docx
- 2025年社区便民维修服务智能预约平台技术创新分析报告.docx
- 数码产品电商品牌化运营策略在2025年的品牌传播渠道优化研究.docx
- 数码产品电商品牌运营策略在2025年的市场推广效果分析报告.docx
- 2025年县域经济振兴与乡村振兴的城乡基础设施对接研究.docx
- 数码产品电商跨境售后维修网络运营成本控制与效率提升报告.docx
文档评论(0)