查字典论文网 >> 基于ObjectARX的道路线形恢复的研究

基于ObjectARX的道路线形恢复的研究

小编:

摘 要:在道路改扩建过程中,需要道路的平面线形资料。而我们在设计过程中可以获取的资料主要是实测地形图,需要重新拟合道路中心线。本文通过ObjectARX技术实现了道路线形参数的拟合,对道路线形恢复具有实践意义。

关键词道路线形恢复; ObjectARX; 二次开发

引 言

由于早期的公路建设和管理不规范,许多道路的线形资料已经遗失或部分遗失,甚至有些低等级的道路根本没有线形资料,因而在道路的改建扩建过程中需要对道路线形资料进行恢复。

1 ObjectARX 开发工具

ObjectARX是AutoCAD软件的强大的二次开发工具,ObjectARX应用程序是一个DLL(动态链接库),共享AutoCAD的地址空间,对AutoCAD核心函数进行直接调用。因此,使用ARX编程的函数的运行速度是其他开发工具不能比拟的。ObjectARX 可以让开发者使用C++为AutoCAD设计一些特殊的实体对象, 可使各种专业性很强的对象与AutoCAD内部实体一样,具有高度灵活的操作方法和完全封装的属性数据,从而实现面向对象的设计思想。[4]

2 平面线形恢复原理

道路线形一般都是由直线、圆曲线和缓和曲线组成,缓和曲线一般在直线与圆曲线之间,也有复合型曲线,为简单起见,本文只考虑直线+缓和曲线+圆曲线的情况。在直线和圆的参数确定的情况下,缓和曲线是确定的,所以只需考虑直线和圆曲线的拟合。

2.1 直线的拟合

直线拟合很简单,获取样本点后,用最小二乘法进行线形回归。

2.2圆曲线的拟合

圆的拟合思想与最小二乘法类似,圆心坐标为 ,半径为 的圆的方程为:

令 得到

数据点到圆距离的平方和表达式为 求解 ,可得到

时使 最小。其中

进而得到 和 的估计值

2.3缓和曲线长度

通过直线和圆的确定,就可以确定缓和曲线的位置。容易计算得到圆心到直线的距离 ,已知 ,可以得到缓和曲线长度 。

3软件实现与功能

3.1设计思路

在实测地形图上,我们可以找到道路的边线和判断道路的宽度,通过原有道路边线与改建扩建后道路中心线的几何关系进行偏移,通过观察,删除具有明显错误的点,得到一个初步的多义线即道路中心线,下面主要的工作就是对这条多义线进行拟合。

需要判断直线与圆的位置。方位角识别法[5]思路是:在道路线形曲率特性上将曲率随线路进行积分得到线路方位角,通过其方位角变化情况来判定线元(直线、圆曲线和缓和曲线)特征。直线段方位角不变化,圆曲线方位角变化为线性的,而缓和曲线方位角变化值是二次抛物线。作出方向角-里程图(如图1)可以容易判断:图中水平的直线表示该段是位于直线上,斜线表示该段位于圆曲线上,直线和斜线之间的过渡段代表缓和曲线段。

图1方向角-里程图

通过做出方向角-里程图可以轻松判别出直线和圆曲线位置,然后根据直线和圆曲线对应的里程桩号,打断之前得到的多义线,只保留直线和圆曲线对应的曲线段,分成直线段和圆曲线段来分别来拟合。

3.2 软件实现

本节以CAD二次开发工具ObjectArx为例,平台采用C++来实现线形参数的拟合。主要通过以下步骤来实现:

1、首先通过专业道路软件容易对原有多义线进行桩号初始化,标注桩号。

2、自主开发程序通过选择多义线生成方向角-里程图,以便判断直线和圆曲线位置。在ObjectArx中通过acedEntSel函数实现实体的选定并通过转换得到多义线对象指针:

ads_name entName;

ads_point pt;

if (acedEntSel("\n选择需要拟合的曲线:",entName,pt) !=RTNORM)

{return;}

AcDbObjectId entId;

acdbGetObjectId(entId, entName);

AcDbEntity *pEnt;

acdbOpenObject(pEnt,entId,AcDb::kForWrite);

if (!pEnt->isKindOf(AcDbPolyline::desc()))

{pEnt->close();}

AcDbPolyline *pPoly =AcDbPolyline::cast(pEnt);

再通过AcDbPolyline::getPointAt函数获取多段线的各个点,通过运算得到方向角和里程数的数组,再在CAD中做出方向角-里程图。

3、通过对方向角-里程图的观察,判断出直线和圆的对应的桩号范围,打断多段线,仅保留直线和圆对应的多段线。

4、按上面的方法获取打断后的多段线上的点,将数据传入直线或圆的拟合函数里,就可以得到直线和圆的拟合结果及缓和曲线的长度,再通过程序在CAD中作出直线和圆的位置并在旁边标注缓和曲线的长度。

5、在我们获得了直线及圆的位置以及缓和曲线的长度后,通过道路专业软件就很容易作出拟合后的结果。

3.3 运行实例

对某段公路进行线形拟合,方向角-里程图见图1,以K0~K0+900之间的线段为例,可以得到K0~K0+300、K0+800~K0+900之间是直线,K0+500~K0+600之间是圆曲线,拟合出:

第二段直线:y= -0.4332x+ 6401563.9564;

缓和曲线长度分别为69.8,、74。

图2拟合出的曲线

4 结论与展望

本文在利用实测地形图边线的基础上,通过ObjectARX技术,实现了道路线形参数的估计,提高了道路线形恢复的效率,具有一定的实际意义。

另外,如何进行计算机的自动分段和智能拟合将是今后需要进一步研究的方向。

热点推荐

上一篇:隧道防水若干问题的探讨

下一篇:如何对幼儿进行德育教育论文 幼儿园关于德育教育之类的论文

大学生寒假打工社会实践报告总结心得范文(23篇) 乡镇消防安全工作总结报告发言(热门17篇) 培训班学员培训心得体会(精选13篇)