二维绘图工具文档_xjh

上传人:第*** 文档编号:32820610 上传时间:2018-02-12 格式:DOC 页数:26 大小:467KB
返回 下载 相关 举报
二维绘图工具文档_xjh_第1页
第1页 / 共26页
二维绘图工具文档_xjh_第2页
第2页 / 共26页
二维绘图工具文档_xjh_第3页
第3页 / 共26页
二维绘图工具文档_xjh_第4页
第4页 / 共26页
二维绘图工具文档_xjh_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《二维绘图工具文档_xjh》由会员分享,可在线阅读,更多相关《二维绘图工具文档_xjh(26页珍藏版)》请在金锄头文库上搜索。

1、 实验报告计算机图形学实验大作业课程名称 计算机图形学 实验名称 二维绘图与计算机动画 姓 名 学 号 专业班级 成 绩 指导教师 二维绘图工具文档说明目录1 简介1.1 基本绘图功能-1.2 附加功能-2 程序代码实现2.0 设计的实现曲线对话框等的类-2.1 鼠标左键按下消息响应函数-2.2 鼠标左键弹起消息响-2.3 鼠标移动消息响应函数-2.4 鼠标右键按下消息响应函数-2.5 选择绘画类型消息相应函数-2.6 画直线线函数-2.7 画有向箭头的函数-2.8 画长方形函数-2.9 画圆函数-2.10 画椭圆函数-2.11 点击“撤消” 消息响应函数-2.12 点击“清空”消息响应函数-

2、2.13 点击“设置线宽线形”消息响应函数-2.14 点击“设置颜色”消息响应函-2.15 点击“设置字体”消息响应函数-2.16 点击“打开 bmp 格式测试文件”消息响应函数-3 程序的运行结果3.1 启动图片-3.2 打开的测试图片-3.3 运行程序界面-4总结4.1 程序的问题和缺陷-4.2 通过这次编写程序的认知和感触-1 简介 使用 VC 开发平台,MFC 框架实现一个画图程序,尽可能多的实现 Windows 自带的画图功能,并扩展其功能。在视图类中完成图形的绘制,显示,重绘,清空,撤消,设置画笔,设置字体,打开 bmp 图片。在文档类保存了, 画笔的信息。1.1 基本绘图功能:1

3、) 用鼠标可以绘制图形,包括一下几种:直线,带箭头的线,任意线,圆形,椭圆,矩形。2) 可以对画笔进行设置:画笔的颜色,画笔的线宽,画笔的形状。3) 可以保存所有的图形到内存中,所有图形绘制后,拉动窗口发生重绘不改变。4) 可以将所有绘制的图形保存到文件中,并且可以读取。5) 可以“新建”空白绘图文档。6) 可以查看最近打开的文档。7) 可以打印用户绘制好后的图形,打印预览你绘制的图形。8) 可以完成一部分的“撤消”功能,1.2 附加功能:(1) 应用程序的标题栏上有程序的图标。(2) 可选择打开或关闭工具栏。(3) 可以打开一些文件中放的测试图片。 、(4) 有一个开机启动画面。(5)有个绘

4、图工具栏。2程序实现的主要代码/实现文件IMPLEMENT_SERIAL( CGraph, CObject, 1 )/文档串行化的 宏定义 DECLARE_SERIAL( CGraph )CGraph:CGraph()CGraph:CGraph(UINT DrawIndex,CPoint FirstPoint,CPoint SecondPoint,COLORREF color,UINT LineWidth,int LineStyle)/5this-m_DrawIndex = DrawIndex;this-m_FirstPoint = FirstPoint;this-m_SecondPoint=

5、 SecondPoint;this-m_color = color;this-m_nLineStyle = LineStyle;this-m_nLineWidth = LineWidth;CGraph:CGraph()void CGraph:Draw(CDC *pDC)/CGraph- m_DrawIndex -CPen hpen(m_nLineStyle,m_nLineWidth,m_color);CBrush *pBrush = CBrush:FromHandle(HBRUSH)GetStockObject(NULL_BRUSH);CBrush *pOldBrush = pDC-Selec

6、tObject(pBrush);switch(m_DrawIndex)case 1:pDC-SelectObject(pDC-MoveTo(m_FirstPoint);pDC-LineTo(m_SecondPoint);break;case 2:break;case 3:float flRlt;flRlt=(float)(m_FirstPoint.x-m_SecondPoint.x)*(m_FirstPoint.x-m_SecondPoint.x)+(m_FirstPoint.y-m_SecondPoint.y)*(m_FirstPoint.y-m_SecondPoint.y);flRlt=s

7、qrt(flRlt);if(flRlt = 0)return;float flLength = 15;float flAngle = 100;/float tmpX = (float)(m_SecondPoint.x) + (float)(m_FirstPoint.x)-(float)(m_SecondPoint.x)*flLength/flRlt;float tmpY = (float)(m_SecondPoint.y) + (float)(m_FirstPoint.y)-(float)(m_SecondPoint.y)*flLength/flRlt;float fl1X = (tmpX-(

8、float)(m_SecondPoint.x)*cos(-flAngle/2) - (tmpY-(float)(m_SecondPoint.y)*sin(-flAngle/2) + (float)(m_SecondPoint.x);float fl1Y = (tmpY-(float)(m_SecondPoint.y)*cos(-flAngle/2) + (tmpX-(float)(m_SecondPoint.x)*sin(-flAngle/2) + (float)(m_SecondPoint.y);float fl2X = (tmpX-(float)(m_SecondPoint.x)*cos(

9、flAngle/2) - (tmpY-(float)(m_SecondPoint.y)*sin(flAngle/2) + (float)(m_SecondPoint.x);float fl2Y = (tmpY-(float)(m_SecondPoint.y)*cos(flAngle/2) + (tmpX-(float)(m_SecondPoint.x)*sin(flAngle/2) + (float)(m_SecondPoint.y);pDC-SelectObject(pDC-MoveTo(m_FirstPoint);pDC-LineTo(m_SecondPoint);pDC-MoveTo(m

10、_SecondPoint.x,m_SecondPoint.y);pDC-LineTo(fl1X,fl1Y);pDC-MoveTo(m_SecondPoint.x,m_SecondPoint.y);pDC-LineTo(fl2X,fl2Y);pDC-MoveTo(fl1X,fl1Y);pDC-LineTo(fl2X,fl2Y);break;case 4:pDC-SelectObject(pDC-Ellipse(CRect(m_FirstPoint,m_SecondPoint);pDC-SelectObject(pOldBrush);break;case 5:pDC-SelectObject(pD

11、C-Ellipse(CRect(m_FirstPoint,m_SecondPoint);pDC-SelectObject(pOldBrush);break;case 6:pDC-SelectObject(pDC-Rectangle(CRect(m_FirstPoint,m_SecondPoint);pDC-SelectObject(pOldBrush);break;void CGraph:Serialize(CArchive &ar)/CArchive/m_DrawIndexm_FirstPointm_SecondPointm_colorm_nLineWidthm_nLineStyle;/任意曲线类class CStroke : public CObject/public:CStroke(UINT nPenWidth,COLORREF color);protected:CStroke();DECLARE_SERIAL(CStroke)/ Attributesprotected:UIN

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号