毕业设计(论文)-基于DXF技术的草图绘制软件设计与实现.doc_第1页
毕业设计(论文)-基于DXF技术的草图绘制软件设计与实现.doc_第2页
毕业设计(论文)-基于DXF技术的草图绘制软件设计与实现.doc_第3页
毕业设计(论文)-基于DXF技术的草图绘制软件设计与实现.doc_第4页
毕业设计(论文)-基于DXF技术的草图绘制软件设计与实现.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计说明书 题 目 基于 DXF 技术的草图绘制软件设计与实现 指导者 评阅者 2011 年 6 月 5 日 2011 届本科毕业设计说明书 毕业设计中文摘要 基于 DXF 技术的草图绘制软件设计与实现 摘要 DXF 是 Autodesk 公司开发的用于 AutoCAD 与其它软件之间进行 CAD 数据交 换的 CAD 数据文件格式 是一种基于矢量的 ASCII 文本格式 基于 DXF 技术的草图绘制系统就是要实现基本草图的绘制和编辑功能 并且 能够将所绘制的草图以 DXF 文件格式保存到存储器或者数据库 从而使其它支持 DXF 格式的 CAD 软件能够将其打开和进行二次开发 此草图绘制系统还能打开标 准的 DXF 格式的文件并对其进行二次开发 本课题主要研究利用基于 VS2005 的 C 语言所提供的 GDI 绘图技术及 AutoCAD 所开发的 DXF 技术 实现各种基本工程草图的绘制功能 并在此基础之 上实现对草图的 DXF 格式的计算机存储 读取和各种编辑功能 课题工作主要分 为三个部分 第一部分是搭建系统架构 设计绘图系统的操作界面 第二部分是 设计基本草图的绘制方法 实现基本草图的绘制和编辑功能 第三部分是设计和 实现基于 DXF 技术的基本草图的存储和读取机制 关键词 CAD 图形绘制 GDI DXF 技术 2011 届本科毕业设计说明书 毕业设计外文摘要 TitleTitle Graphics Drawing Software Design and Implementation Based on DXF Technology AbstractAbstract DXF developed by Autodesk Company is a CAD data file format and a vector based ASCII text format and it usually used for data exchange between AutoCAD and other CAD software This system is aimed to achieve some basic functions of drawing and editing various graphics Rely on this system the graphics can be drawn and edited on the screen and can be saved as DXF format files in database or memory so that graphics can be recognized by other DXF format supported CAD software and also can be used as a secondary development In addition the system can also read standard DXF format files using them for secondary development The main subject of this study is to achieve the drawing storage reading and editing of a variety of basic graphics by the GDI provided by Microsoft s C language and the AutoCAD DXF technology and all tasks are completed in the VS2005 compiler The project is mainly divided into three parts The first part is to build the system architecture design the system interface according to the mission statement The second part is the design of the methods of drawing and editing different graphics and the implementation of these functions The third part is the design and implementation of the mechanism for storing and reading of different graphics based on DXF technology 2011 届本科毕业设计说明书 KeywordsKeywords CAD Graphics Drawing GDI DXF Technology 2011 届本科毕业设计说明书 1 目目 次次 1 绪论 1 1 1 课题意义 1 1 2 国内外研究状况 2 1 3 课题研究内容 3 2 开发工具简介 3 2 1 DXF 技术简介 3 2 2 AUTOCAD2004 简介 4 2 3 VISUAL STUDIO 开发平台与 GDI 绘图机制简介 4 2 4 SQL SERVER 2000 简介 6 3 系统需求分析 6 4 基于 DXF 技术的草图绘制系统设计 7 4 1 绘图系统的功能模块设计 7 4 2 绘图类的设计 8 4 3 系统操作界面的设计 9 4 4 草图存储读取机制的设计 9 5 基于 DXF 技术的草图绘制系统实现 11 5 1 草图绘制功能的实现 11 5 2 草图编辑功能的实现 23 5 3 草图复制粘贴功能的实现 25 5 4 草图 DXF 存储读取功能的实现 26 结 论 30 参 考 文 献 31 致 谢 33 2011 届本科毕业设计说明书 1 1 1 绪论绪论 1 1 1 1 课题意义课题意义 人类在表达思想 传递信息时 最初采用图形 后来逐渐演化发展为具有 抽 象意义的文字 这是人类在信息交流上的一次伟大革命 在信息交流中 图形表 达方式比文字表达方式具有更多的优点 一幅图纸能容纳下许多信息 表达内容 直观 一目了然 在不同的民族与地区具有表达思想的相通性 而往往可以反映 用语言 文字也难以表达的信息 工程图是工程师的语言 绘图是工程设计乃至整个工程建设中的一个重要环 节 然而 图纸的绘制是一项极其繁琐的工作 不但要求正确 精确 而且随着 环境 需求等外部条件的变化 设计方案也会随之变化 一项工程图的绘制通常 是在历经数遍修改完善后才完成的 但由于项目的多样性 多变性 使得手工绘 图周期长 效率低 重复劳动多 从而阻碍了建设的发展 随着计算机的迅猛发展 工程界的迫切需要 计算机辅助绘图 ComputerAided Drawing 应运而生 计算机绘图是通过编制计算机辅助绘图软件 将图形显示在屏幕上 用户可以用光标对图形直接进行编辑和修改 由微机配上 图形输入和输出设备 如键盘 鼠标 绘图仪 以及计算机绘图软件 就组成一套 计算机辅助绘图系统 在设计中通常要用计算机对不同方案进行大量的计算 分 析和比较 以决定最优方案 各种设计信息 不论是数字的 文字的或图形的 都能存放在计算机的内存或外存里 并能快速地检索 设计人员通常用草图开始 设计 将草图变为工作图的繁重工作可以交给计算机完成 由计算机自动产生的 设计结果 可以快速作出图形显示出来 使设计人员及时对设计作出判断和修改 利用计算机可以进行与图形的编辑 放大 缩小 平移和旋转等有关的图形数据 加工工作 CAD 能够减轻设计人员的计算画图等重复性劳动 专注于设计本身 缩短设计周期和提高设计质量 目前 CAD 软件逐渐成熟和完善 已经在建筑 测绘 机械 三维游戏 计算 机动画 医疗研究等多个领域得到广泛的应用给我们段的生活带来了很大的帮助 众多 CAD 软件之间的相互兼容性则是我们应该重点研究的内容 与此同时DXF 文 2011 届本科毕业设计说明书 2 件格式是图形开发中最常用的图形交换格式之一 它给我们提供了一个统一的标 准 因此目前众多第三方开发的图形软件均加入了对 DXF 文件的支持 这样就可 以很大程度上实现资源共享避免重复的劳动 1 1 2 2 国内外研究状况国内外研究状况 CAD Computer Aided Design 诞生于 60 年代 是美国麻省理工学院提出了交互 式图形学的研究计划 由于当时硬件设施的昂贵 只有美国通用汽车公司和美国波 音航空公司使用自行开发的交互式绘图系统 70 年代 小型计算机费用下降 美国工业界才开始广泛使用交互式绘图系统 80 年代 由于 PC 机的应用 CAD 得以迅速发展 出现了专门从事 CAD 系统开发 的公司 当时 VersaCAD 是专业的 CAD 制作公司 所开发的 CAD 软件功能强大 但由 于其价格昂贵 故不能普遍应用 而当时的 Autodesk 公司是一个仅有员工数人的小 公司 其开发的 CAD 系统虽然功能有限 但因其可免费拷贝 故在社会得以广泛应 用 同时 由于该系统的开放性 该 CAD 软件升级迅速 CAD 的平面绘图功能能以多种方式创建直线 圆 椭圆 多边形 样条曲线等 基本图形对象 AutoCAD 提供了正交 对象捕捉 极轴追踪 捕捉追踪等绘图辅助 工具 正交功能使用户可以很方便地绘制水平 竖直直线 对象捕捉可帮助拾取几 何对象上的特殊点 而追踪功能使画斜线及沿不同方向定位点变得更加容易 AutoCAD 具有强大的编辑功能 可以移动 复制 旋转 阵列 拉伸 延长 修剪 缩放对象等 标注尺寸 可以创建多种类型尺寸 标注外观可以自行设定 书写文字 能轻易在图形的任何位置 沿任何方向书写文字 可设定文字字体 倾 斜角度及宽度缩放比例等属性 图层管理功能 图形对象都位于某一图层上 可设 定图层颜色 线型 线宽等特性 三维功能 可创建 3D 实体及表面模型 能对实体 本身进行编辑 此外还具有网络功能 可将图形在网络上发布 或是通过网络访问 AutoCAD 资 源 数据交换功能 AutoCAD 提供了多种图形图像数据交换格式及相应命令 二次开发 AutoCAD 允许用户定制菜单和工具栏 并能利用内嵌语言 Autolisp Visual Lisp VBA ADS ARX 等进行二次开发 AutoCAD 的更新升级的速度非常快 每个新版本都会加入一些更新更强大的功 能 AutoCAD 荣登全球绘图软件的龙头宝座 主要是因为它具有开放的体系结构 2011 届本科毕业设计说明书 3 其中的一种方法就是利用开放的 DXF 接口将绘制的模型保存为标准的 DXF 格式 这 样做就可以提高软件之间的兼容性大大的提升开发效率 AutoCAD 因其丰富的绘图功能 强大的编辑功能和良好的用户界面受到广大工 程技术人员的普遍欢迎 AutoCAD 的用户遍及全世界 150 多个国家和地区 在我国 也得到了非常广泛的应用 AutoCAD 已成为事实上的微机 CAD 应用与开发标准平台 1 1 3 3 课题研究内容课题研究内容 基于 DXF 技术的草图绘制系统主要是研究实现基本草图的绘制和编辑功能 并 且能够将所绘制的草图以 DXF 文件格式保存到存储器或数据库 从而使其它支持 DXF 格式的 CAD 软件能够同该绘图软件进行数据交换 同时本草图绘制系统也能打 开标准的 DXF 格式文件并对其进行二次开发 系统功能的实现主要利用基于 VS2005 的 C 语言所提供的 GDI 绘图技术及 AutoCAD 所开发的 DXF 技术 实现各种基本工程草图的绘制功能 并在此基础之上 实现对草图的 DXF 格式的计算机存储 读取和各种编辑功能 2 2 开发工具简介开发工具简介 2 2 1 1 DXFDXF 技术简介技术简介 DXF 是 Autodesk 公司开发的用于 AutoCAD 与其它软件之间进行 CAD 数据交换的 CAD 数据文件格式 是一种基于矢量的 ASCII 文本格式 由于 AutoCAD 现在是最流 行的 CAD 系统 DXF 也被广泛使用 成为事实上的标准 绝大多数 CAD 系统都能读 入或输出 DXF 文件 DXF 文件是由很多的 代码 和 值 组成的 数据对 构造 而成 这里的代码称为 组码 group code 指定其后的值的类型和用途 每个 组码和值必须为单独的一行 DXF 文件被组织成为多个 段 SECTION 每个段以组码 0 和字符串 SECTION 开头 紧接着是组码 2 和表示段名的字符串 如 HEADER 可以使 用组码和值定义段中的元素 段的结尾使用组码 0 和字符串 ENDSEC 来定义 由于 DXF 文件可读性好 用户可方便地对它进行修改 编程 达到从外部对图形进 行编辑 修改的目的 2011 届本科毕业设计说明书 4 ASCII 格式的 DXF 文件可以用文本编辑器进行查看 DXF 文件的基本组成如下 所示 HEADER 部分 图的总体信息 每个参数都有一个变量名和相应的值 CLASSES 部分 包括应用程序定义的类的信息 这些实例将显示在 BLOCKS ENTITIES 以及 OBJECTS 部分 通常不包括用于与其它应用程序交互的信 息 TABLES 部分 这部分包括命名条目的定义 Application ID APPID 表 Block Recod BLOCK RECORD 表 Dimension Style DIMSTYPE 表 Layer LAYER 表 Linetype LTYPE 表 Text style STYLE 表 User Coordinate System UCS 表 View VIEW 表 Viewport configuration VPORT 表 BLOCKS 部分 这部分包括 Block Definition 实体用于定义每个 Block 的组 成 ENTITIES 部分 这部分是绘图实体 包括 Block References 在内 OBJECTS 部分 包括非图形对象的数据 供 AutoLISP 以及 ObjectARX 应用程 序所使用 THUMBNAILIMAGE 部分 包括 DXF 文件的预览图 END OF FILE 2 2 2 2 AutoCAD2004AutoCAD2004 简介简介 AutoCAD2004 是美国 Autodesk 公司 03 年开发的通用计算机辅助绘图与设计软 件 具有易于掌握 使用方便 体系结构开放等特点 广泛应用于机械 建筑 电 子 航天 造船 石油化工 土木工程 冶金 农业 气象 纺织 轻工业等领域 AutoCAD2004 具有强大的二维绘图与编辑功能 可绘制基本二维图形对象 如直 线 射线 构造线 圆 圆环 圆弧 椭圆 矩形 等边多边形 样条曲线 多段 线 云线等 为封闭区域填充图案 创建图块 对图形对象进行删除 移动 复制 镜像 阵列 延伸 修剪 缩放等功能 同时还具有文字标注功能 对于文字说明 技术要求等 用户可设置文字样式 以便使用不同的字体 大小等设置标注文字各 种形式的尺寸 设置尺寸标注样式 可随时更改己有标注值或标注样式 可实现关 联标注 图层功能 利用标准文件功能 可以对诸如图层 文字样式 线型这样的 命名对象定义标准的设置 利用图层转换器能够将当前图形图层的名称和特性转换 成己有图形或标准文件对图层的设置 2011 届本科毕业设计说明书 5 2 2 3 3 VisualVisual StudioStudio 开发平台与开发平台与 GDI GDI 绘图机制简介绘图机制简介 Visual Studio 是微软公司推出的开发环境 Visual Studio 可以用来创建 Windows 平台下的 Windows 应用程序和网络应用程序 也可以用来创建网络服务 智能设备应用程序和 Office 插件 C 是微软 Microsoft 为 NET Framework量身订做的程序语言 C 拥有C C 的 强大功能以及Visual Basic简易使用的特性 本课题主要研究C 的GDI 绘图机制 Windows窗体提供的图形类型分为下面三类 2 3 12 3 1 二维矢量图形二维矢量图形 二维矢量图形是绘图的基本元素 例如 直线 曲线和图形 它们由坐标系统 上的一些点和另外一些描述参数指定 例如 直线可通过它的两个端点来指定 而 矩形可通过确定其左上角的点并给出其宽度和高度的一对数字来指定 简单路径可 通过由直线连接的点的数组来指定 贝塞尔曲线是由4个控制点指定的复杂曲线 GDI 提供了存储基元 基本元素 自身信息的类和结构 存储基元绘制方式信息的 类 以及实际进行绘制的类 2 3 22 3 2 图像处理图像处理 某些种类的图片很难或者根本无法用矢量图形技术来显示 例如 工具栏按钮 上的图片和显示为图标的图片就难以指定为直线和曲线的集合 色彩丰富且分辨率 高的数码照片会更难以使用矢量技术来制作 这种类型的图像更适合存储为位图 GDI 提供了用于显示 操作和保存位图的Bitmap类 2 3 32 3 3 版式版式 版式是指以各种字体 大小和样式显示文本 GDI 提供了对这种复杂任务的广 泛支持 GDI是图形设备接口 它的主要任务是负责系统与绘图程序之间的信息交换 处理所有Windows程序的图形输出 GDI 中的新功能之一是子像素消除锯齿 它可以 使文本在LCD Liquid Crystal Display 屏幕上呈现时显得比较平滑 一般来说 绘图首先要获得Graphics对象 然后才可以使用GDI 绘制线条和形 状 呈现文本或显示与操作图像 Graphics类是GDI 的核心功能 它是实际绘制直 线 曲线 图形 图像和文本的类 Graphics对象在创建后 可用于绘制线条和形 状 呈现文本或显示与操作图像 与Graphics对象一起使用的主要对象有以下4种 Pen类 用于绘制线条 勾勒形状轮廓或呈现其他几何表示形式 2011 届本科毕业设计说明书 6 Brush类 用于填充图形区域 如实心形状 图像或文本 Font类 提供在呈现文本时要使用什么形状的有关说明 Color类 表示要显示的不同颜色 2 2 4 4 SQLSQL ServerServer 20002000 简介简介 SQL Structured Query Language 结构化查询语言 SQL语言的主要功能就是 同各种数据库建立联系 进行沟通 按照ANSI 美国国家标准协会 的规定 SQL被作 为关系型数据库管理系统的标准语言 SQL语句可以用来执行各种各样的操作 例如 更新数据库中的数据 从数据库中提取数据等 绝大多数流行的关系型数据库管理 系统都采用了SQL语言标准 虽然很多数据库都对SQL语句进行了再开发和扩展 但 是包括Select Insert Update Delete Create 以及Drop在内的标准的SQL命令 仍然可以被用来完成几乎所有的数据库操作 SQL Server 2000 是Microsoft公司推出的SQL Server 数据库管理系统 该版 本继承了SQL Server 7 0 版本的优点 同时又比它增加了许多更先进的功能 具有 使用方便可伸缩性好与相关软件集成程度高等优点 可跨越从运行Microsoft Windows 98 的小型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器 等多种平台 SQL提供的两种使用方式 一种是自含语言 是一种以独立语言的方式与机器进 行交互 是非过程化语言 用户只需提出操作要求 发出SQL命令 而不必提出操作 步骤 另一种是宿主语言 是将SQL命令嵌入某种高级程序设计语言中 以实现数据 库操作 从整个程序来讲是过程化的 程序中规定了操作的步骤 但嵌入的SQL语言 仍是非过程化的 完成该语句的过程由系统经过优化决定 3 3 系统需求分析系统需求分析 本课题所要实现的是基于DXF技术的草图绘制系统 任务书中所规定的系统主要 需求如下 采用DXF技术 开发草图绘制工具软件 支持常用的基本图形绘制 并实现对颜 色的选择 填充 也可以添加文字 支持对图形的常用编辑 如选中图形 进行复制 粘贴 剪切 缩放 缩小 放大 等操作 绘制图形时可以进行分层 并让图层叠 2011 届本科毕业设计说明书 7 加显示 绘制后的图形支持保存到数据库中 也可以添加到WORD等文档中 支持文 档常用操作 如新建 打开 保存到本地 另存 系统用例图如下图所示 保 保 保 保 保 保 保 保 保 保 保 保 保 保 保 保 保 保 保 保 保 保 保 保 保 保 保 保 保 保 图3 1 系统用例图 4 4 基于基于 DXFDXF 技术的草图绘制系统设计技术的草图绘制系统设计 4 4 1 1 绘图系统的功能模块设计绘图系统的功能模块设计 经过对系统需求的详细分析 设计出以下系统功能模块图 2011 届本科毕业设计说明书 8 基基于于D DX XF F技技术术的的草草图图绘绘制制系系统统 图图形形绘绘制制图图形形编编辑辑图图形形存存储储读读取取 复复制制图图形形 拖拖动动图图形形 画画板板管管理理 新新建建画画板板 选选择择图图形形类类型型 选选择择绘绘图图参参数数 删删除除画画板板 存存储储图图形形 读读取取图图形形 粘粘贴贴图图形形 切切换换画画板板 重重绘绘图图形形 选选择择填填充充方方式式 图 4 1 系统功能模块图 详细的功能模块操作释义如下表所示 表 4 1 系统详细功能模块操作释义表 功能名称具体操作 选择图形类型选择系统所具有的草图类型 选择绘图参数选择画笔的颜色 宽度 样式及图形所在的画板 选择填充方式选择有边框白色填充 有边框颜色填充 无边框颜色填充 复制图形将选定的图形的特征属性存入系统剪切板 粘贴图形将系统剪切板中的图形特征属性加载到系统并绘制图形 重绘图形动态改变选定图形的大小 形状 拖动图形 将选定图形在绘图区域内动态拖动 改变其在画板上的位 置 新建画板新建一个绘图画板 系统最多支持 10 个画板同时开启 删除画板删除所选中的画板 当系统只有一个画板时不能将其删除 切换画板 在多个画板之间任意切换画板 查看并绘制 编辑其中的 内容 4 4 2 2 绘图类的设计绘图类的设计 系统所设计的绘图类如下表所示 表 4 2 系统的绘图类表 绘图类名称绘图类名称 DrawObject 绘制草图基类DrawRectangle 绘制矩形类 DrawLine 绘制直线类DrawString 绘制文本框类 DrawPolygon 绘制点轨迹曲线类DrawEllipse 绘制椭圆类 DrawMultiLine 绘制多段线类DrawPicture 绘制图片框类 DrawArc 绘制弧线类DrawPentagon 绘制正五边形类 DrawCircle 绘制圆类DrawHexagon 绘制正六边形类 DrawTriangle 绘制正三角形类DrawPieSlice 绘制扇形类 DrawSquare 绘制正方形类DrawBezierCurve 绘制贝塞尔曲线类 不同类型的绘图类之间的继承关系如下图所示 2011 届本科毕业设计说明书 9 D Dr ra aw wO Ob bj je ec ct t A Ab bs st tr ra ac ct t C Cl la as ss s D Dr ra aw wL Li in ne e C Cl la as ss s I In nh he er ri it te ed d f fr ro om m D Dr ra aw wO Ob bj je ec ct t D Dr ra aw wR Re ec ct ta an ng gl le e C Cl la as ss s I In nh he er ri it te ed d f fr ro om m D Dr ra aw wO Ob bj je ec ct t D Dr ra aw wP Po ol ly yg go on n C Cl la as ss s I In nh he er ri it te ed d f fr ro om m D Dr ra aw wL Li in ne e D Dr ra aw wP Pi ic ct tu ur re e C Cl la as ss s I In nh he er ri it te ed d f fr ro om m D Dr ra aw wR Re ec ct ta an ng gl le e D Dr ra aw wC Ci ir rc cl le e C Cl la as ss s I In nh he er ri it te ed d f fr ro om m D Dr ra aw wR Re ec ct ta an ng gl le e D Dr ra aw wE El ll li ip ps se e C Cl la as ss s I In nh he er ri it te ed d f fr ro om m D Dr ra aw wR Re ec ct ta an ng gl le e D Dr ra aw wS St tr ri in ng g C Cl la as ss s I In nh he er ri it te ed d f fr ro om m D Dr ra aw wR Re ec ct ta an ng gl le e D Dr ra aw wT Tr ri ia an ng gl le e C Cl la as ss s I In nh he er ri it te ed d f fr ro om m D Dr ra aw wC Ci ir rc cl le e D Dr ra aw wA Ar rc c C Cl la as ss s I In nh he er ri it te ed d f fr ro om m D Dr ra aw wE El ll li ip ps se e D Dr ra aw wS Sq qu ua ar re e C Cl la as ss s I In nh he er ri it te ed d f fr ro om m D Dr ra aw wC Ci ir rc cl le e D Dr ra aw wH He ex xa ag go on n C Cl la as ss s I In nh he er ri it te ed d f fr ro om m D Dr ra aw wC Ci ir rc cl le e D Dr ra aw wP Pe en nt ta ag go on n C Cl la as ss s I In nh he er ri it te ed d f fr ro om m D Dr ra aw wC Ci ir rc cl le e D Dr ra aw wP Pi ie eS Sl li ic ce e C Cl la as ss s I In nh he er ri it te ed d f fr ro om m D Dr ra aw wE El ll li ip ps se e D Dr ra aw wB Be ez zi ie er rC Cu ur rv ve e C Cl la as ss s I In nh he er ri it te ed d f fr ro om m D Dr ra aw wO Ob bj je ec ct t D Dr ra aw wM Mu ul lt ti iL Li in ne e C Cl la as ss s I In nh he er ri it te ed d f fr ro om m D Dr ra aw wL Li in ne e 图4 2 绘图类之间的继承关系图 4 4 3 3 系统操作界面的设计系统操作界面的设计 系统的操作界面由图形绘制和编辑区域 系统绘图功能参数设置区域两大部分 构成 用户可在系统参数设置区域上进行功能和参数选择 在绘图区域上对草图进 行绘制和编辑 以求达到预期的绘图效果 操作界面由 WhiteBoard 用户控件 DrawArea 用户控件 ToolStrip1 系统控件 ToolStrip2 系统控件构成 其中 DrawArea 用户控件 ToolStrip1 系统控件 ToolStrip2 系统控件被集成在 WhiteBoard 用户控件之中 而 DrawArea 控件则为草 图绘制和编辑区域 ToolStrip1 控件和 ToolStrip2 控件则用来对系统的各项参数 进行设置 DrawArea 控件和 ToolStrip1 ToolStrip2 控件被嵌入在 WhiteBoard 控件中 进而将整个 WhiteBoard 用户控件加载到 Form 中形成用户界面 下图为操作界面设计图 2011 届本科毕业设计说明书 10 图4 3 系统主操作界面 4 4 4 4 草图存储读取机制的设计草图存储读取机制的设计 绘制草图的核心功能是通过调用 GDI 提供的绘图方法而实现 图形在绘制完成 之后 系统要能够将其保存到存储器或者数据库中 这就需要提取每个图形的基本 特征属性 然后再按照 DXF 的格式将其存储 4 4 14 4 1 草图的草图的 DXFDXF 存储设计存储设计 草图的 DXF 存储主要是根据所绘图形的特征属性等基本信息将其存储为标准的 DXF 文件 包含生成文件固定的字段 根据图形特征属性等基本信息填充 HEADERS 段 TABLES 段 ENTITIES 段等 将所有数据按照规定的顺序填充到一个文件中并将 数据生成标准的 DXF 文件 功能参数设置栏 图形绘制和编辑区域 功能参数设置栏 2011 届本科毕业设计说明书 11 以DXF格式读取草图 第一步填充DXF文件的固定字段 第二步根据图形的特征属填充基 本信息 第三步按照顺序生成标准的DXF 文件 填充尺寸 版本等信息 填充图层 样式表等信息 根据图形填充实体信息 图4 4 草图的DXF存储流程设计 4 4 24 4 2 草图的草图的 DXFDXF 读取设计读取设计 草图的 DXF 读取主要是打开一个标准的 DXF 文件 然后将打开文件中的字符串 保存起来以便后续分析提取有用的信息 将字符串按 HEADERS TABLES ENTITIES 段分别提取出来 根据分离出的信息按照组码提取需要的组值 最后根据所提取的 信息调用系统绘图功能绘出图形 以DXF格式读取草图 第一步读取DXF文件的整个字符串 第二步根据不同名称的段分离属 于各个段的字符串 第三步根据组码值提取草图特征 属性 第四步将草图特征属性信息加载 至绘图系统并将其绘出 图4 5 草图的DXF读取流程设计 2011 届本科毕业设计说明书 12 5 5 基于基于 DXFDXF 技术的草图绘制系统实现技术的草图绘制系统实现 5 5 1 1 草图绘制功能的实现草图绘制功能的实现 草图绘制功能是绘图系统前台的重要组成部分 该功能的实现需要为每种类型 的图形设计其独立的绘图算法 并选择适当的 GDI 所提供的绘图方法才能将各种不 同类型的草图顺利绘出 在绘制草图之前要首先设置系统的画笔 Pen 参数 包括 画笔线条宽度 颜色 虚实等 其次对于闭合图形还可设置其填充方式和颜色 针 对不同类型草图的绘制方法系统的具体实现如下 5 1 15 1 1 直线 直线 LineLine 的绘制 的绘制 直线的绘制需要在绘图区域捕获两个坐标点 第一个坐标点为直线的起始坐标 点 StartPoint 第二个坐标点为直线的终止坐标点 EndPoint 然后生成 System Drawing 所提供的 Graphics 对象 g 最后调用 g DrawLine Pen StartPoint X StartPoint Y EndPoint X EndPoint Y 函数将其绘出 Pen 为系 统画笔参数 StartPoint X 和 StartPoint Y 分别为该点在画板上的 X 轴坐标分量 和 Y 轴坐标分量 以下各图形介绍均以此为例 绘制直线的流程图如下 开始 鼠标左键点击绘图区域 获取其坐标为 直线起始点Startpoint 鼠标左键按下并停留于原坐标点或移动 获取 其 坐 标 为 直 线 终 止 点 E n d P o i n t 生成Graphics对象 g 调用g DrawLine Pen StartPoint X StartPoint Y E n d P o i n t X E n d P o i n t Y 函 数 将 直 线 绘 出 结束 是 鼠标左键是否始终按下 否 图 5 1 绘制直线的流程图 2011 届本科毕业设计说明书 13 5 1 25 1 2 贝塞尔曲线 贝塞尔曲线 BezierCurveBezierCurve 的绘制 的绘制 贝塞尔曲线就是这样的一条曲线 它是依据四个位置任意的点坐标绘制出的一 条光滑曲线 在历史上 研究贝塞尔曲线的人最初是按照已知曲线参数方程来确定 四个点的思路设计出这种矢量曲线绘制法 贝塞尔曲线的有趣之处更在于它的 皮 筋效应 也就是说 随着点有规律地移动 曲线将产生皮筋伸引一样的变换 带来 视觉上的冲击 1962年 法国数学家Pierre B zier第一个研究了这种矢量绘制曲线 的方法 并给出了详细的计算公式 贝塞尔曲线的重要作用在于 由于用计算机画图大部分时间是操作鼠标来掌握 线条的路径 与手绘的感觉和效果有很大的差别 即使是一位精明的画师能轻松绘 出各种图形 拿到鼠标想随心所欲的画图也不是一件容易的事 这一点是计算机万 万不能代替手工的工作 所以到目前为止人们只能颇感无奈 使用贝塞尔工具画图 很大程度上弥补了这一缺憾 贝塞尔曲线的绘制需要在绘图区域捕获四个坐标点 第一个坐标点为贝塞尔曲 线的起始坐标点StartPoint 第二个坐标点为贝塞尔曲线的终止坐标点EndPoint 然后生成System Drawing 所提供的Graphics 对象g并调用g DrawLine Pen StartPoint X StartPoint Y EndPoint X EndPoint Y 函数绘出贝塞尔曲线的主 体直线 第三个坐标点为贝塞尔曲线的其中一个控制坐标点ControlPoint1 还需调 用g DrawBezier Pen StartPoint ControlPoint1 ControlPoint1 EndPoint 绘制单 控制点贝塞尔曲线 第四个坐标点为贝塞尔曲线的另一个控制坐标点 ControlPoint2 此时调用 g DrawBezier Pen StartPoint ControlPoint1 ControlPoint2 EndPoint 完整的贝 塞尔曲线即绘制完毕 绘制贝塞尔曲线的效果图如下 图 5 2 绘制贝塞尔曲线的效果图 绘制贝塞尔曲线的流程图如下 2011 届本科毕业设计说明书 14 开始 鼠标左键点击绘图区域 获取其坐 标为贝塞尔曲线起始点Startpoint 鼠标左键按下并停留于原坐标点或移动 获取其坐标为贝塞尔曲线终止点EndPoint 生成Graphics对象 g 调用g DrawLine Pen StartPoint X StartPoint Y EndPoint X EndPoint Y 函数将贝塞尔曲线主体直线 绘出 结束 是 鼠标左键是否始终按下 否 鼠标左键按下并停留于原坐标点或移动 获取 其坐标为贝塞尔曲线一个控制 点ControlPoint1 调用g DrawBezier Pen StartPoint ControlPoint1 ControlPoint1 EndPoint 函数将贝塞尔曲线单点控制线绘出 鼠标左键是否始终按下 是 鼠标左键按下并停留于原坐标点或移动 获取其 坐标为贝塞尔曲线另外一个控制 点ControlPoint2 调用g DrawBezier Pen StartPoint ControlPoint1 ControlPoint2 EndPoint 函数将完整的贝塞尔曲线绘出 鼠标左键是否始终按下 是 否 否 图 5 3 绘制贝塞尔曲线的流程图 5 1 35 1 3 多段线多段线 MultiLineMultiLine 的绘制的绘制 多段线就是由多条直线首尾相连而组成的一种多段折线 在多段线的绘制过程 中以鼠标左键点击绘图域开始绘制 以鼠标右键点击绘图域结束绘制 其间所捕获 的所有坐标点即为其特征点 多段线的绘制需要在绘图区域捕获至少两个坐标点 第一个坐标点为多段线的 起始坐标点 StartPoint 最后一个坐标点为多段线的终止坐标点 EndPoint 在此两 点间获取的所有坐标点为多段线的连接点 绘制过程中需设立一个点数组 PointList 数组将这些点按先后顺序存入数组 在生成 Graphics 对象 g 后 以 PointList 数组中依次相邻的两点 2011 届本科毕业设计说明书 15 PriorPoint NextPoint 为参数 循环调用 g DrawLine Pen PriorPoint X PriorPoint Y NextPoint X NextPoint Y 函数将多段线各段首尾相接逐段绘出 对于各段首尾相接处的棱角点都是可以拖动的 进而可改变多段线的形状 绘制多段线的效果图如下 图 5 4 绘制多段线的效果图 绘制多段线的流程图如下 开始 鼠标左键点击绘图区域 获取其坐标点为多 段 线 连 接 点 并 存 入 P o i n t L i s t 数 组 从PointList数组按先后顺序将坐标点依次赋值 给 P r i o r P o i n t 和 N e x t P o i n t 调用g DrawLine Pen PriorPoint X PriorPoint Y NextPoint X NextPoint Y 函数将多段线逐段绘出 结束 否 鼠标右键是否按下 是 否 鼠标左键是否按下 以PointList数组尾点为PriorPoint 以鼠标当前坐标点为NextPoint 调用g DrawLine Pen PriorPoint X PriorPoint Y NextPoint X NextPoint Y 函数将多段线最后一段绘出 是 否 PointList数组元素个数是否大于1 否 是 生成Graphics对象 2011 届本科毕业设计说明书 16 图 5 5 绘制多段线的流程图 5 1 45 1 4 弧线 弧线 ArcArc 的绘制 的绘制 弧线的绘制需要在绘图区域捕获一个矩形框 此矩形框为确定所绘弧线大小尺 寸的参数 Rectangle 此外要绘制圆或椭圆上任意角度的弧线还需输入起始角度 StartAngle 和扫过角度 SweepAngle 以确定弧线的起始点和终止点 获取参数后生 成 System Drawing 所提供的 Graphics 对象 g 最后调用 g DrawArc Pen Rectangle StartAngle SweepAngle 函数将其绘出 输入起始角度 StartAngle 和扫过角度 SweepAngle 的界面如下 图 5 6 起始角度和扫过角度的输入界面 绘制弧线的流程图如下 开始 鼠标左键点击绘图域 拖动获取Rectangle矩形框 输入起始角度StartAngle 扫过角度SweepAngle 调 用 g D r a w A r c P e n R e c t a n g l e StartAngle SweepAngle 函数将弧线绘出 结束 生成Graphic对象 g 鼠标左键是否按下 否 是 2011 届本科毕业设计说明书 17 图 5 7 绘制弧线的流程图 5 1 55 1 5 扇形 扇形 PieSlicePieSlice 的绘制 的绘制 扇形的绘制需要在绘图区域捕获一个矩形框 此矩形框为确定所绘扇形大小尺 寸的参数 Rectangle 此外要绘制圆饼或椭圆饼上任意角度的扇形还需输入起始角 度 StartAngle 和扫过角度 SweepAngle 以确定其形状 获取参数后生成 System Drawing 所提供的 Graphics 对象 g 最后调用 g DrawPie Pen Rectangle StartAngle SweepAngle 函数将其绘出 输入起始角度 StartAngle 和扫过角度 SweepAngle 的界面如下 图 5 8 起始角度和扫过角度的输入界面 扇形的绘制流程类似弧线的绘制流程 但因其为闭合图形 所以可以设置其绘 制时的填充方式 绘制扇形的流程图如下 开始 鼠标左键点击绘图域 拖动获取Rectangle矩形框 输入起始角度StartAngle 扫过角度SweepAngle 调 用 g D r a w P i e P e n R e c t a n g l e StartAngle SweepAngle 函数将扇形绘出 结束 生成Graphic对象 g 鼠标左键是否按下 否 是 2011 届本科毕业设计说明书 18 图 5 9 绘制扇形的流程图 5 1 65 1 6 圆 圆 CircleCircle 的绘制 的绘制 圆的绘制需要在绘图区域捕获一个圆心点 CenterPoint 获取圆的半径 Radius 以确定其位置和大小 获取参数后生成 System Drawing 所提供的 Graphics 对象 g 因为圆属于一种特殊的椭圆 所以调用 g DrawEllipse Pen CenterPoint X Radius CenterPoint Y Radius 2 Radius 2 Radius 函 数将圆绘出 绘制圆的流程图如下 开始 鼠标左键点击绘图区域 获取其 坐标为圆心坐标点CenterPoint 调用g DrawEllipse Pen CenterPoint X Radius CenterPoint Y Radius 2 Radius 2 Radius 函数将圆绘出 结束 生成Graphic对象 g 拖动鼠标获取其坐标点与圆心坐 标点之间的距离为圆半径Radius 鼠标左键是否按下 否 是 图 5 10 绘制圆的流程图 5 1 75 1 7 椭圆 椭圆 EllipseEllipse 的绘制 的绘制 椭圆的绘制需要在绘图区域捕获一个矩形区域 Rectangle 以该矩形的长作为 椭圆的长轴长度 以该矩形的高作为椭圆的短轴长度 获取参数后生成 System Drawing 所提供的 Graphics 对象 g 所以调用 g DrawEllipse Pen Rectangle 函数即可将椭圆绘出 绘制椭圆的效果图如下 2011 届本科毕业设计说明书 19 图 5 11 绘制椭圆的效果图 绘制椭圆的流程图如下 开始 鼠标左键点击绘图区域 拖动鼠标获取Rectangle矩形框 调用g DrawEllipse Pen Rectangle 函数将椭圆绘出 结束 生成Graphic对象 g 鼠标左键是否按下 否 是 图 5 12 绘制椭圆的流程图 5 1 85 1 8 矩形 矩形 Re

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论