基于ObjectARX道路线形恢复研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于ObjectARX道路线形恢复研究

基于ObjectARX道路线形恢复研究   摘 要:在道路改扩建过程中,需要道路的平面线形资料。而我们在设计过程中可以获取的资料主要是实测地形图,需要重新拟合道路中心线。本文通过ObjectARX技术实现了道路线形参数的拟合,对道路线形恢复具有实践意义。   关键词道路线形恢复; ObjectARX; 二次开发   引 言   由于早期的公路建设和管理不规范,许多道路的线形资料已经遗失或部分遗失,甚至有些低等级的道路根本没有线形资料,因而在道路的改建扩建过程中需要对道路线形资料进行恢复。   在进行道路线形恢复的方法有基于GPS的平面线形技术[1] [2]、基于数字图像的道路线形恢复[3]等,这些方法相对来说都比较复杂,而且测量的数据与实验车辆的行驶有很大关系,而我们在道路设计过程中有时候没必要得到那么精确的数据,我们较容易获得的资料有实测地形图,而通过地形图中道路边线进行中线的拟合既经济又实用。本文在利用实测地形图边线的基础上,通过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()))   {pEn

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档