基于VC++ 绘图制作的课程设计报告.docx
- 文档编号:11216236
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:11
- 大小:87.85KB
基于VC++ 绘图制作的课程设计报告.docx
《基于VC++ 绘图制作的课程设计报告.docx》由会员分享,可在线阅读,更多相关《基于VC++ 绘图制作的课程设计报告.docx(11页珍藏版)》请在冰点文库上搜索。
基于VC++绘图制作的课程设计报告
VC++程序设计
课程设计报告书
题目:
绘图软件的设计
班级:
1091151
学号:
109115112
姓名:
郭若楠
指导教师:
姚璐
周期:
2011-12-19至2011-12-23
成绩:
2011年12月23日
一、课程设计的目的与要求
(一)课程设计目的与任务
通过本课程的学习使学生熟悉应用程序设计的基础知识,熟悉Windows编程,熟悉Windows应用程序的设计、编写、调试等过程。
对基本控件使用、文字处理、图形处理有较全面的认识,了解什么是数据源,还会怎样将数据源和控件建立关系和如何使用数据库进行编程。
(二)题目要求
单文档应用程序,能够选择图形的类型(圆,矩形,直线,画笔),能够选择图形的颜色,能够对绘制的图形进行颜色填充(使用画刷),能够选择图形的线型(如实线,点线,虚线等),能够选择画线的颜色和线的宽度。
绘制效果参见开始程序中的画图。
二、设计正文
1、系统分析
用VC++.NET开发画图应用软件的功能。
实现和用户的交互,根据用户的选择来实现相应图形的绘制。
2、功能详细描述及框图
以菜单选择为主,根据用户的不同菜单选择来改变当前所要绘制的图形。
用“绘图”菜单下的“类型”菜单来选择所要绘制的图形是圆、矩形、直线还是画笔。
用“绘图”菜单下的“线的颜色”菜单来编辑所要绘制图形的边框颜色。
用“绘图”菜单下的“填充颜色”菜单实现所绘制的圆和矩形进行颜色填充,用“绘图”菜单下的“线型”来实现对线性(实线、虚线、点线)。
菜单来选择边框的用“绘图”菜单下的“线宽”实现边框的粗细。
3、主要功能逻辑过程和实现算法
图的绘制主要在鼠标的左键按下、鼠标移动、鼠标左键松开的事件中来完成。
类型、选择颜色、填充颜色、选择线型、线宽、等都用相应的变量值来表示。
当选择某一种操作后,相应的变量值会改变,依次来判断用户的选择。
实现算法如下:
voidChuituView:
:
OnLine()
{
type=1;//直线
}
voidChuituView:
:
OnElli()
{
type=2;//圆
}
voidChuituView:
:
OnRect()
{
type=3;//矩形
}
voidChuituView:
:
OnPen()
{
type=4;//画笔
}
voidChuituView:
:
OnLButtonDown(UINTnFlags,CPointpoint)
{
//按下鼠标左键
p1=p2=point;
pen.CreatePen(style,width,color);
pdc->SelectObject(&pen);
if(tc)
{
bsh.CreateHatchBrush(6,tccolor);
pdc->SelectObject(&bsh);
}
else
{
pdc->SelectStockObject(NULL_BRUSH);
}
pdc->SetROP2(R2_NOTXORPEN);
a=true;
CView:
:
OnLButtonDown(nFlags,point);
}
voidChuituView:
:
OnMouseMove(UINTnFlags,CPointpoint)
{
//移动鼠标
if(!
a)
return;
if(type==1)
{
pdc->MoveTo(p1.x,p1.y);
pdc->LineTo(p2.x,p2.y);
p2=point;
pdc->MoveTo(p1.x,p1.y);
pdc->LineTo(p2.x,p2.y);
}
elseif(type==2)
{
pdc->Ellipse(p1.x,p1.y,p2.x,p2.y);
p2=point;
pdc->Ellipse(p1.x,p1.y,p2.x,p2.y);
}
elseif(type==3)
{
pdc->Rectangle(p1.x,p1.y,p2.x,p2.y);
p2=point;
pdc->Rectangle(p1.x,p1.y,p2.x,p2.y);
}
elseif(type==4)
{
p2=point;
pdc->MoveTo(p1.x,p1.y);
pdc->LineTo(p2.x,p2.y);
p1=point;
}
CView:
:
OnMouseMove(nFlags,point);
}
voidChuituView:
:
OnLButtonUp(UINTnFlags,CPointpoint)
{//释放鼠标左键
pdc->SetROP2(R2_COPYPEN);
if(type==1)
{
pdc->MoveTo(p1.x,p1.y);
pdc->LineTo(point.x,point.y);
}
elseif(type==2)
{
pdc->Ellipse(p1.x,p1.y,point.x,point.y);
}
elseif(type==3)
{
pdc->Rectangle(p1.x,p1.y,point.x,point.y);
}
elseif(type==4)
{
pdc->MoveTo(p1.x,p1.y);
pdc->LineTo(point.x,point.y);
}
a=false;
CView:
:
OnLButtonUp(nFlags,point);
}
voidChuituView:
:
Onxzlolor()
{
//线条颜色选择
CColorDialogdlg(0,CC_FULLOPEN);
if(dlg.DoModal())
{
color=dlg.GetColor();
}
}
voidChuituView:
:
Ontccolor()
{
//填充颜色
CColorDialogdlg(0,CC_FULLOPEN);
if(dlg.DoModal())
{
tccolor=dlg.GetColor();
tc=true;
}
}
voidChuituView:
:
Onwtc()
{
//无类型,直接用颜色填充
tcstyle=5;
tc=true;
}
voidChuituView:
:
Onx()
{
width=1;
}
voidChuituView:
:
Onc()
{
width=2;
}
voidChuituView:
:
Onsx()
{
style=0;
}
voidChuituView:
:
Onxx()
{
style=1;
}
5、页面设计
(“类型”菜单)
(“选择颜色”菜单)
(“填充颜色”菜单)
(“选择线型”菜单)
(“线宽”菜单)
6、系统测试
三、小组成员分工说明
独立完成
四、课程设计总结或结论
1课程设计过程中出现的技术难点和解决方法:
技术难点:
图形颜色的填充
解决方法:
voidChuituView:
:
Ontccolor()
{
//填充颜色
CColorDialogdlg(0,CC_FULLOPEN);
if(dlg.DoModal())
{
tccolor=dlg.GetColor();
tc=true;
}
}
2课程设计期间的主要收获:
通过本次课程设计,我充分了解和掌握了图形的绘制和一些VC++的控件的使用,对这学期所学知识有了更深刻的掌握,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于VC+ 绘图制作的课程设计报告 基于 VC 绘图 制作 课程设计 报告