canvas教程

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

字号+ 作者:H5之家 来源:H5之家 2017-09-18 08:00 我要评论( )

动态生成B样条曲线的实现步骤如下: (1)设定一个点集合ListPoint mousepts保存鼠标左键所按下的序列点; (2)在鼠标移动过程中把鼠标的当前位置作为B样条曲线的临时终点,加入点集合mousepts; (3)由点集合mousepts中

    动态生成B样条曲线的实现步骤如下:
  (1)设定一个点集合List<Point> 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.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • html5 canvas元素使用(一)

    html5 canvas元素使用(一)

    2017-09-16 14:15

  • WPF画布如何实时刷新

    WPF画布如何实时刷新

    2017-09-16 11:02

  • HTML5绘图基础_07_绘制第二个图形

    HTML5绘图基础_07_绘制第二个图形

    2017-09-15 12:04

  • HTML学习总结(四)【canvas绘图、WebGL、SVG】

    HTML学习总结(四)【canvas绘图、WebGL、SVG】

    2017-09-15 08:08

网友点评
s