新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于WPF的交互式绘图系统的开发

基于WPF的交互式绘图系统的开发

作者:时间:2011-07-20来源:网络收藏

Canvas 是顶级布局控件,Canvas面板类似传统的图形环境,利用坐标位置指定对象的摆放地点。Canvas的左上角为原点,X坐标向右,Y坐标向下。而一般的图形的坐标原点设定在区的左下角,X坐标水平向右,Y坐标竖直向上,因此可利用的Transform类,通过设定Canvas的RenderTransform来实现[3]。为了使图元大小根据窗口的大小进行缩放,可以将Canvas放在Viewbox内。以下是实现坐标变换的XAML片段:
Viewbox>
  Canvas RenderTransformOrigin=0.5,0.5>
Canvas.RenderTransform>
  TransformGroup >
  ScaleTransform ScaleY=-1 />
/TransformGroup>
  /Canvas.RenderTransform>
  /Canvas>
  /Viewbox>
  图形元素的编辑与修改功能主要依靠计算机图形学的基本原理以及Windows表现层基础类库()来实现。的System.Printing命名空间下的PrintDialog类主要用来实现打印单页或多页文件的功能,PrintDialog类显示一个打印对话框,与用户交互操作来完成打印功能。
2.2.3 曲线曲面造型功能
 曲线曲面造型[4]是计算机辅助几何设计(CAGD)的核心,也是计算机图形学的一项重要内容。三次B样条曲线是曲线学中一个重要部分,它不但保留了Bezier曲线的优点,而且克服了其不具备局部性质的缺点,能更好地表示与设计自由型曲线曲面,通过几个控制点的移动能形成不同的曲线。提供了绘制B样条曲线与闭合B样条曲线的功能。绘制图形如图5所示。

动态生成B样条曲线的实现步骤如下:
  (1)设定一个点集合ListPoint> mousepts保存鼠标左键所按下的序列点;
  (2)在鼠标移动过程中把鼠标的当前位置作为B样条曲线的临时终点,加入点集合mousepts;
  (3)由点集合mousepts中的这些序列点反求B样条曲线的控制顶点[5];
  (4)利用求出的B样条曲线的控制顶点得到B样条曲线上的序列离散点;
(5)将序列离散点依次加入多段线Polyline的Points集合,从而生成B样条曲线。
3 图形数据文件的存储与读取
图形数据文件的输出包含JPG和DXF两种格式。由于AutoCAD在全世界应用非常广泛,它的数据文件格式DXF已经成为事实上的一种标准,因此系统提供了自定义的图形数据文件格式与DXF格式相互转换的功能。DXF 文件本质上由代码及关联值对组成。代码(通常称为组码)表明其后的值的类型。使用这些组码和值对,可以将 DXF 文件组织到由记录组成的区域中,这些记录由组码和数据项目组成。在 DXF 文件中,每个组码和值都各占一行。DXF文件完整的结构[6]如图6所示。

程序中设计了两个基类ReadDXF和WriteDXF来分别读取和写入DXF文件。ReadDXF读取 DXF 文件,并且从给定段的给定对象中提取特定代码和值。与读取 DXF 文件相比,写入DXF文件更困难一些,因为必须保持图形的一致性,这样 AutoCAD 才能找到可接受的文件。AutoCAD 允许省略 DXF 文件中的很多项目,仍然能够获得可用的图形,但文件结尾处必须存在 EOF 项目。为了简便,WriteDXF省略了整个HEADER段、TABLES 段和BLOCKS 段,只包含 ENTITIES 段。
随着计算机系统、图形输入、图形输出设备的发展,计算机图形软件系统也有了很大的发展[7]。本文详细介绍了WPF的系统的功能与设计,并探讨了系统实现过程中的若干关键技术。该系统实现了其他图形软件具有的基本操作,并提供了自定义的图形数据文件格式与DXF格式相互转换的功能,操作方便,灵活,具有可扩展性,经过改进还可以成为适用于其它行业的通用的图形工具软件。
参考文献
[1] MACDONALD M. Pro WPF in C# 2008:Windows Presentation Foundation with .NET 3.5[M]. New York: Apress,2008.
[2] NATHAN A. WPF揭秘[M]. 瞿杰,译. 北京:人民邮电出版社,2008:109-111.
[3] PETZOLD C. Windows Presentation Foundation程序设计指南[M].蔡学镛,译. 北京:电子工业出版社, 2008:844-845.
[4] 朱永强,鲁聪达. 自由曲线曲面造型技术的综述[J].中国制造业信息化,2003,32(5):110-113.
[5] 孙家广,杨长贵.计算机图形学[M]. 北京:清华大学出版社, 1995.
[6] 谭超,张群会.AutoCAD 的DXF格式文件读写方法研究[J].计算机与网络,2009,35(21):46-49.
[7] 曾庆云. 计算机技术的发展趋势[J]. 机械研究与应用,1996(4):37-38.

矢量控制相关文章:矢量控制原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭