基于C++net的绘图软件的实现课程设计报告书.docx

上传人:b****0 文档编号:10054854 上传时间:2023-05-23 格式:DOCX 页数:10 大小:102.19KB
下载 相关 举报
基于C++net的绘图软件的实现课程设计报告书.docx_第1页
第1页 / 共10页
基于C++net的绘图软件的实现课程设计报告书.docx_第2页
第2页 / 共10页
基于C++net的绘图软件的实现课程设计报告书.docx_第3页
第3页 / 共10页
基于C++net的绘图软件的实现课程设计报告书.docx_第4页
第4页 / 共10页
基于C++net的绘图软件的实现课程设计报告书.docx_第5页
第5页 / 共10页
基于C++net的绘图软件的实现课程设计报告书.docx_第6页
第6页 / 共10页
基于C++net的绘图软件的实现课程设计报告书.docx_第7页
第7页 / 共10页
基于C++net的绘图软件的实现课程设计报告书.docx_第8页
第8页 / 共10页
基于C++net的绘图软件的实现课程设计报告书.docx_第9页
第9页 / 共10页
基于C++net的绘图软件的实现课程设计报告书.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于C++net的绘图软件的实现课程设计报告书.docx

《基于C++net的绘图软件的实现课程设计报告书.docx》由会员分享,可在线阅读,更多相关《基于C++net的绘图软件的实现课程设计报告书.docx(10页珍藏版)》请在冰点文库上搜索。

基于C++net的绘图软件的实现课程设计报告书.docx

基于C++net的绘图软件的实现课程设计报告书

VC++.net程序设计

课程设计报告书

题目:

绘图软件的设计

班级:

0991151

学号:

1099115113

姓名:

姜远飞

教师:

姚璐

周期:

2010.12.27—2010.12.31

成绩:

2010年12月30日

 

《绘图软件的设计》

一、课程设计的目的与要求

(一)课程设计目的与任务

用VC++.NET实现画图软件的功能。

可以实现圆、矩形、画笔的绘图,并能选择相应的边框颜色和填充颜色,选择线宽和线的类型。

(二)题目要求

单文档应用程序,能够选择图形的类型(圆,矩形,直线,画笔),能够选择图形的颜色,能够对绘制的图形进行颜色填充,能够选择图形的线型(如实线,点线,虚线等),能够选择画线的颜色和线的宽度。

二、设计正文

1系统分析和开发背景

用VC++.NET开发画图应用软件的功能。

实现和用户的交互,根据用户的选择来实现相应图形的绘制。

2功能详细描述

以菜单选择为主,根据用户的不同菜单选择来改变当前所要绘制的图形。

用“画图”菜单下的“类型”菜单来选择所要绘制的图形是圆、矩形、直线还是画笔。

用“画图”菜单下的“颜色”菜单来编辑所要绘制图形的边框颜色。

用“画图”菜单下的“线性”菜单来选择边框的线性(实线、虚线、点线)。

用“画图”菜单下的“线宽”菜单来选择边框的宽度。

用“画图”菜单下的“填充”菜单来实现对所绘制的圆和矩形进行颜色填充。

用“画图”菜单下的“橡皮”菜单来实现对所绘制的图形进行擦除。

3、数据结构和数据库设计

4、主要功能逻辑过程和实现算法

图的绘制主要在鼠标的左键按下、鼠标移动、鼠标左键松开的事件中来完成。

类型、颜色、线形、线宽、填充、橡皮等都用相应的变量值来表示。

当选择某一种操作后,相应的变量值会改变,依次来判断用户的选择。

实现算法如下:

voidChuatuView:

:

OnLButtonDown(UINTnFlags,CPointpoint)

{

//按下鼠标左键

if(type==5)

{

p1=point;

medc=newCClientDC(this);

medc->SelectStockObject(WHITE_PEN);

medc->SelectStockObject(WHITE_BRUSH);

pdc->SelectStockObject(BLACK_PEN);

pdc->SelectStockObject(WHITE_BRUSH);

pdc->Rectangle(p1.x-xpwidth,p1.y-xpwidth,p1.x+xpwidth,p1.y+xpwidth);

}

else

{

p1=p2=point;

pen.CreatePen(style,width,color);

pdc->SelectObject(&pen);

if(tc)

{

bsh.CreateHatchBrush(tcstyle,tccolor);

pdc->SelectObject(&bsh);

}

else

{

pdc->SelectStockObject(NULL_BRUSH);

}

pdc->SetROP2(R2_NOTXORPEN);

}

b=true;

CView:

:

OnLButtonDown(nFlags,point);

}

voidChuatuView:

:

OnMouseMove(UINTnFlags,CPointpoint)

{

//移动鼠标

if(!

b)

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,p1.y+(p2.x-p1.x));

p2=point;

pdc->Ellipse(p1.x,p1.y,p2.x,p1.y+(p2.x-p1.x));

}

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)

{

pdc->MoveTo(p1.x,p1.y);

pdc->LineTo(point.x,point.y);

p1=point;

}

elseif(type==5)

{

medc->Rectangle(p1.x-xpwidth,p1.y-xpwidth,p1.x+xpwidth,p1.y+xpwidth);

p1=point;

pdc->Rectangle(p1.x-xpwidth,p1.y-xpwidth,p1.x+xpwidth,p1.y+xpwidth);

}

CView:

:

OnMouseMove(nFlags,point);

}

voidChuatuView:

:

OnLButtonUp(UINTnFlags,CPointpoint)

{

//释放鼠标左键

if(type==5)

{

medc->Rectangle(p1.x-xpwidth,p1.y-xpwidth,p1.x+xpwidth,p1.y+xpwidth);

}

else

{

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,p1.y+(point.x-p1.x));

}

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);

}

}

b=false;

CView:

:

OnLButtonUp(nFlags,point);

}

 

5、界面设计

(“类型”菜单)

(“颜色”菜单)

(“线性”菜单)

(“线宽”菜单)

(“填充”菜单)

(“橡皮”菜单)

6、系统测试

三、小组成员分工说明

独立完成

四、课程设计总结或结论

1课程设计过程中出现的技术难点和解决方法:

解决根据用户的不同选择来构造不同的画笔和画刷。

可以把创建画笔和画刷所需要的参数定义成相应的变量,用户的选择来改变某个参数所关联的变量的值,如创建画笔需要“画笔的类型”、“画笔的宽度”、“画笔的颜色”就可以创建三个变量:

style\width\color来分别表示,这样就可以在绘制图形之前用这三个变量来创建画笔了。

从而实现绘制不同的图形边框。

2课程设计期间的主要收获:

对GDI工具的使用有了跟深刻的理解,对实现图形的绘制掌握了一定的基础。

3对今后课程设计的建议

提供一些有利的参考资料,以便在遇到问题时可以尽快解决。

五、参考文献

[1]梁兴柱,王建一,龚丹,林玉娥.VisualC++.NET程序设计.清华大学出版社

六、指导教师评阅意见

附录(其他必要资料)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2