基于开源dxflib解析库的dxf文件显示

本文介绍如何利用开源库dxflib解析dxf文件,并展示如何通过MFC的CDC进行双缓冲绘制。内容包括重写DL_CreationAdapter类的方法来绘制直线、点、圆、圆弧、多边形和样条曲线,以及处理坐标转换和显示问题。虽然dxflib能够解析线型、颜色等信息,但实际显示中并未实现,提供了一个局部放大的运行效果和下载链接。
摘要由CSDN通过智能技术生成

   dxflib实现了dxf文件的解析。所有的图元解析完后,都会通过DL_CreationAdapter的虚函数接口回调,所以我们要继承这个类,重写那些想绘制的图元的方法,比如直线对应的就是virtual void addLine(const DL_LineData&); 这个DL_LineData结构体数据保存的就是我们要绘制直线的数据。

   绘制我用的是MFC的CDC,双缓冲机制。先把根据数据把所有的图元绘制到内存缓冲中,再一次拷到窗口DC中。值得注意是平移和放大以及坐标系转换。因为应用程序的左上角是原点(0,0),面我们需要显示给人看的是Y轴正方向是屏幕由下往上。(屏幕实际Y方向是由上往下)。只实现了点,直线,圆,圆弧,多边形,样条曲线(包括用控制点,和顶点两种),以及单行文本。 像线型,线条颜色,多行文本,椭圆这些都是没有实现。但是DXFLIB这些信息有解析出来,只需要按照规则理论上都是可以实现的。

   运行效果如下:


上图局部放大后效果如下:

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值