[发明专利]一种3DGIS中多分辨率自适应注记的方法无效
申请号: | 200910076427.9 | 申请日: | 2009-01-04 |
公开(公告)号: | CN101477562A | 公开(公告)日: | 2009-07-08 |
发明(设计)人: | 张立强;陈晨 | 申请(专利权)人: | 北京师范大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06T17/50;G06T15/70 |
代理公司: | 北京慧泉知识产权代理有限公司 | 代理人: | 王顺荣;唐爱华 |
地址: | 100875*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种3DGIS中多分辨率自适应注记的方法,其步骤如下:步骤一:非点要素注记的点位提取方法。1.线矢量要素注记点位提取:线矢量由顺次相连的有限空间点组成,从这些点连接成的折线中选择位于中间的一段折线,求该线段的中心点作为线注记的初始位置。在三维场景移动时,利用左右剪裁面构造位于视景体内的探测平面,使其与线矢量做相交测试,交点即为新的注记位置。2.面矢量要素注记点位提取:为保证面矢量注记与所属要素同时可见,先采集了均匀分布在多边形内的点群并将它们编码,然后在漫游过程中,根据视景体与面矢量的位置关系,实时移动注记到点群中的合适位置。步骤二:实时动态的进行注记:根据视点位置对注记进行多分辨率显示。 | ||
搜索关键词: | 一种 dgis 分辨率 自适应 方法 | ||
【主权项】:
1.一种3DGIS中多分辨率自适应注记的方法,其特征在于:该方法具体步骤如下:步骤一:建立多分辨率模型,以控制注记是否显示根据视点位置对注记进行多分辨率显示:基于注记文字的尺寸和离视点的距离,判断地形上要素的注记是否需要显示;若label _ size dis tan ce > c , ]]> 则显示,反之不显示;其中,c是可调节的因子,c越大,在某一区域显示的注记越少,反之越多;Label_size是注记的尺寸,其值越大,可视距离就越大;如果注记代表空间范围较大的地理要素,注记的原始尺寸就应相应的设置大一些,distance是视点到注记所属点位的距离;将注记转动合适角度,使注记所在平面的法矢量总指向观察者;计算视点到注记所在点位的平面向量α,其方向角为a,以及注记文字展开方向定义单位向量β,初始方向角为0°,将注记转动角度b=a+π/2,经过转动向量α与向量β呈正交;步骤二:非点要素注记的点位提取方法由步骤一获取了需要显示三维地形场景要素的注记;接下去,要确定这些要素注记的显示位置,为了解决传统的注记方法存在的问题,本专利提出基于视相关多分辨率方法,分别实现线矢量要素和面矢量要素的注记;(一)、线矢量要素注记方法线矢量由顺次相连的有限个空间点组成,从这些点连接成的线中选择位于中间的一段折线,该线段的中心点作为线注记的初始位置;若浏览三维场景,根据视点的位置,调整注记的初始位置,沿线矢量方向自适应滑动;主要思想是:利用左右剪裁面构造一个位于视景体内的探测平面,用该平面与线矢量做相交测试,交点即为新的注记位置;以下是实现的具体步骤:(1)根据标注对象的重要性和离视点的远近,判断注记是否需要显示;(2)只有位于视景体前剪裁面内的注记才是视点前方的注记,是可见的,因此只有这部分注记进入下一步判断;(3)对于位于初始位置的注记,如果在左右剪裁面和下剪裁面内,一旦与视景体边界发生碰撞,就移动注记;如果注记在左右剪裁面和下剪裁面外,且注记到剪裁面的距离小于线矢量MBR对角线长度1/2时,同样移动注记;对于已经离开初始位置的注记,当视景体移出线矢量覆盖范围一定距离后,就将注记移回原处,否则移动注记到新的位置;(4)利用视景体剪裁面构造位于视景体内部的探测面,与组成矢量的各个线段进行相交判断,找到相交的线段;(5)用上面得到的线段与探测面求交点,由于探测面垂直于水平面,可以简化为直线与线段求二维交点,并从数字高程模型中获取该点高程;(6)将注记移到新的位置,并沿线矢量延伸方向放置,返回第一步,进入下一条线矢量的注记判断;在第3步中,如果发生碰撞的是左边界,就用左剪裁面构造一个与其平行的、位于视景体内的左探测平面,右边界发生碰撞时,同理可得右探测平面,如果下边界发生碰撞,要依照先左后右的顺序,建立探测平面;注意在一次定位中只能有一个起作用的探测面;探测面q是通过将剪裁面p沿法线向视景体内移动(Δx,Δy,Δz)得到的,平面方程如下:A(x-(x0+AΔx))+B(y-(y0+BΔy))+C(z-(z0+CΔz))=0剪裁面p上一点M0的坐标为(x0,y0,z0),面法线向量n0=(A,B,C);探测面q上一点M的坐标为(x0+AΔx,y0+BΔy,z0+CΔz),面法线向量n=n0;该专利使用了两种确定Δx,Δy,Δz的方法:视点离线矢量较远时,用线矢量的MBR对角线长度的合理倍数来确定;距离线矢量很近时,用注记的尺寸来确定;根据透视投影的原理,如果注记文字大小不变,视点移近时观察到的文字就有可能覆盖整个屏幕,因此为了避免这种现象,注记的尺寸应随视点距离反比变化,但是对于某些弯曲的线矢量,如果用不断变化的注记尺寸来决定探测面位置,可能导致视点不移动,而探测面发生平移,注记在两个位置循环往复、发生跳跃的现象;因此在视点较远的时候,该专利用线矢量的MBR对角线长度来确定探测面,若探测面到视景体边界的距离大于可见范围,交点位于视景体之外,注记不可见,这时可用注记的尺寸确定探测面的位置;第(4)步中,在当前视点下,判断视景体内多分辨率线矢量上的可见顶点是否在探测面内,如果两相邻点分别在平面内和平面外,那么两点组成的线段与探测平面相交;在已知相交后,还要保证至少有一个点位于下剪裁面内,避免注记位置不可见的情况;由于场景浏览具有连续性,上次循环中相交线段的附近最可能包含这次循环符合条件的线段,因此从该线段开始向两侧寻找与平面相交的线段,从而快速的找到交点;线注记移到新点位后要经过两次旋转,使注记与所属线矢量方向平行,注记的文字展开方向,即矩形框长边自左而右的方向,与x轴正向一致;假设A->B为线段的正方向,首先将线矢量AB和注记投影到xz平面,得到向量a,求得与视线方向正交的的向量b,a与b之间的夹角为α,如果α < π 2 , ]]> 注记沿a方向分布时,基本面向观察者,否则就将B->A作为线段正向;α > π 2 , ]]> 注记应绕z轴转动β角至向量c;接着将AB线段和注记投影到xy平面,已知B->A为线段正向,X轴负向为注记方向,将注记绕Z轴旋转θ角后,注记发生俯仰而符合地形起伏的变化;(二)、面矢量要素注记的算法面矢量是由一条或多条首尾相连的线矢量围成的多边形,可能是凸多边形、凹多边形,或内部有洞,多边形的复杂性导致判断一个可见点是否在多边形内的算法往往很复杂,本专利先采集了均匀分布在多边形内的点群并编码;在3DGIS场景浏览过程中,为保证面矢量注记与所属要素同时可见,注记应在面矢量覆盖范围内移动,根据视景体与面矢量的位置关系,实时移动注记到点群中的某一合适位置;主要具体步骤有:(1)在面矢量的矩形包围盒中按照分级编码原则取出均匀分布的三级点群,记录这些点中位于面矢量多边形内点的三维坐标,作为移动注记的预选位置,其中第一级预选点作为面注记的初始位置,直到所有的面矢量都建立起分级预选点群为止;(2)按照注记距离视点的远近和本身的尺寸,判断注记是否显示,只有位于视景体前剪裁面内的注记,即位于视点前方的注记进入下一步判断;(3)如果初始位置,即第一级预选点可见,就将注记移动到初始位置,否则为注记寻找新位置;(4)分别将左右剪裁面与面矢量的最小矩形包围框求交,如果有交点,将交点按照在MBR上的位置进行编码;(5)从预选点群中提取可见的点,按照交点编码不同,进行全循环排查,由于点群是分级排列的,第一级预选点不符合条件,就从第二级开始寻找,若仍然没有可见点,再寻找第三级预选点;(6)移动注记到找出的合适位置,返回第二步,进入下一个面矢量注记的判断,在第(1)步中,采用四叉树结构分割面矢量的MBR;三个级别的矩形,表示四叉树的深度为3,同一级别内每一个矩形为四叉树的一个结点,选择各级矩形中心点加入点群,则每个面矢量点群中共有21个点;将这21个点分为三个级别进行编码,规则如下:每个点都进行无符号整形编码,即码位共有16位,位于高位的八位区分该点属于哪个面矢量,这八位与点的位置无关,是为了方便搜索;位于低位的八位中,前四位表示所属级别,后四位表示在该级中的结点位置,这八位编码定义了该点位于点群的什么位置;四叉树结点中四个点的编码规则,可见高位表示纵向位置,居上为0,居下为1;低位表示横向位置,居左为0,居右为1;下一步用射线法筛选点群中位于多边形内的点,记录三维坐标,作为注记的预选位置,组成分级预选点群;由于多边形形状各异,所以每个面矢量的分级预选点群的组成点数和点位都不相同;需要注意的是,注记的初始位置定在一级点处,我们要保证一级点被选入预选点群,而MBR的中心不一定在多边形内部,所以一级点不能简单的定位到矩形中心;在矩形中心位于多边形外的情况下,选用一种能够找出多边形内一点的几何方法来确定一级点;在第(4)步中,剪裁面与MBR的两个交点按照上面提到的方法进行编码,不同的是此时码位仅为2,即仅有00、01、10、11这四种编码,将编码求异可以发现,两个交点位于对角区域时大于3,此时四个区域的点是可见的,而两个交点位于一个区域或两交点位于相邻区域时会小于3,此时就在交点编码所代表的区域内找可见点,从而减少了查找的次数;据此将在预选点群中查找可见点的工作分成三种,一是只查找一个区域,二是查找两个区域,三是四个区域全部查找;一旦找到可见点,就停止查找,将注记移动到该点即可;建立分级预选点群的优势在于:点群中的点都是位于面矢量多边形内的点,避免了移动过程中判断点是否位于多边形内的复杂运算;点群均匀分布在多边形内,总可以根据视角变化,在点群中找到合适的可见点;每个级别内的几个点都尽量覆盖整个面矢量区域,并且点位逐级变密,按级搜索可以保证尽量在较疏的级别找到可见点,相比从分布在矩形框最左边的点一直排查到最右边的点,按级搜索效率更高;步骤三:实时动态的进行注记(一)当视景体剪裁面与注记的最小包围矩形框发生碰撞,如果注记所表示的实体要素可见,就自适应的将注记移动到视景体内,否则使注记不可见;沿裁剪面法向量的正负方向移动注记,每次移动的距离等于注记尺寸的1/2,返回第一步,继续处理下一个注记;(二)每次完成所有注记的处理后,记录下所有可见注记,探测这些注记间是否有相互遮挡,移动注记以消除遮挡;(三)决定注记的显示高度,除了考虑用户定义的标签高度外,还要检测注记在三维场景漫游中发生旋转、平移时是否与地形发生碰撞,将发生碰撞处的地形高程作为标签高度,以解决地形起伏遮挡注记的问题;在第(三)步中,剪裁面与MBR碰撞检测的算法如下:①生成视景体的下剪裁面和左右剪裁面,使其法向量指向视景体内,取矩形框左下角点g和右上角点h,得到第i个剪裁面的方程为:Aix+Biy+Ciz+D=0,②将g点的三维坐标(xg,yg,zg),代入下剪裁面方程,得到d g 1 = A 1 x g + B 1 y g + C 1 z g + D , ]]> 当d g 1 > 0 , ]]> 表示注记在视景体下剪裁面内,进行下一步的碰撞检测和第五步的遮挡检测,仅选用下剪裁面是由于注记离地面较近,上剪裁面往往不发生作用;③对右剪裁面进行碰撞检测,探测g点与右剪裁面的位置关系,定义
当d g 2 < 0 , ]]> 注记的左侧点在右剪裁面之外,注记不与左右剪裁面相交,否则定义
当d h 2 < 0 , ]]> 注记与右剪裁面相交,否则注记在右剪裁面内侧,进入下一步左剪裁面的判断;④对左剪裁面进行碰撞检测,定义
当d h 3 < 0 , ]]> 注记的右侧位于左剪裁面外,注记不可见,否则定义
当d g 3 < 0 ]]> 时,注记与左剪裁面相交;在第(三)步中,首先将注记的MBR投影到屏幕上,通过比较MBR的屏幕坐标判断注记集内每两个矩形间的位置关系,若遮挡,就将位于上方的注记向上移,移动的距离等于MBR的宽,从而保证每个注记的完整可见,当这对注记不再相互遮挡时,及时将注记移回初始位置。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京师范大学,未经北京师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200910076427.9/,转载请声明来源钻瓜专利网。
- 上一篇:烯丙基钯衍生物
- 下一篇:汞离子检测试剂盒和试纸及其制备方法与应用