CN103136767A - 一种矢量图绘制方法和装置 - Google Patents
一种矢量图绘制方法和装置 Download PDFInfo
- Publication number
- CN103136767A CN103136767A CN2011103789557A CN201110378955A CN103136767A CN 103136767 A CN103136767 A CN 103136767A CN 2011103789557 A CN2011103789557 A CN 2011103789557A CN 201110378955 A CN201110378955 A CN 201110378955A CN 103136767 A CN103136767 A CN 103136767A
- Authority
- CN
- China
- Prior art keywords
- polar plot
- field range
- draw
- summit
- intersection point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明实施例公开了一种矢量图绘制方法和装置,其中方法包括:获取视野范围相关参数,确定视野范围;计算并确定将要绘制的矢量图落入视野范围部分;绘制所述落入视野范围部分的矢量图。达到减小顶点屏幕坐标值的目的,从而消除了顶点屏幕坐标值过大引起的图形畸变或者消失,提高矢量图绘制稳定性。另外,只绘制落入视野范围内的矢量图,降低图形渲染面积,从而提高矢量图绘制速度。
Description
技术领域
本发明涉及电子地图技术领域,特别涉及一种矢量图绘制方法和装置。
背景技术
矢量图使用直线和曲线来描述图形,这些图形的元素可以是一些点、线、矩形、多边形、圆和弧线等,它们都是通过数学公式计算获得的。例如一朵花的矢量图实际是由线段形成花的外框轮廓,由外框的颜色及外框所封闭的颜色决定花显示的颜色。由于矢量图可通过公式计算获得,所以矢量图文件体积一般较小。矢量图的特点是无论放大、缩小或者旋转等都不会失真,适用于图形设计、文字设计和一些标志设计、版式设计等。
地图是现实世界的缩影,与人们的日常生活息息相关。传统地图通常以纸张为信息载体,纸张的大小决定了承载地图信息量的多少。随着现代电子科技的发展,计算机和手机的成熟应用,网络地图服务以其实时性、大信息量、丰富的功能,成为传统地图的延伸,同时扩展出传统地图无法替代的实用性和功能性。随着互联网的发展,网络地图服务已成为人们经常使用的互联网服务之一。目前,因特网上发布的网络地图主要包括两种,分别是矢量地图和栅格地图。其中矢量地图是根据空间坐标点数据和数学公式,通过客户端的本地驱动描绘的地图;栅格地图则是指通过切片拼接的方式显示的地图。
为满足广大用户对网络地图日益提高的需要,除了提供网络地图显示功能外,还需要提供矢量图形添加等功能。比如用户可能需要在网络地图上绘制公交线路,或者描述、定位查询区域,而这个查询区域可以是任何图形,包括圆,矩形或者任意多边形。
发明人在实现本发明实施例的过程中发现:当查询区域对应的矢量图形顶点的屏幕坐标值较小时,采用目前的矢量图形开发语言进行绘制是可以的;但是,当所绘矢量图形覆盖的经纬度范围较大,并且矢量图放大到较大级别时,会引起顶点屏幕坐标值较大,会导致所绘矢量图形畸变或消失,因而稳定性差;另外,大面积的图形渲染会极大地降低绘图效率,因此绘制速度慢。
发明内容
本发明实施例需要解决的技术问题是提供了一种矢量图绘制方法和装置,能够提高矢量图绘制速度和稳定性。
一种矢量图绘制方法,包括:
获取视野范围相关参数,确定视野范围;
计算并确定将要绘制的矢量图落入视野范围部分;
绘制所述落入视野范围部分的矢量图。
一种矢量图绘制装置,包括:
视野确定单元,用于获取视野范围相关参数,确定视野范围;
绘制范围确定单元,用于计算并确定将要绘制的矢量图落入视野范围部分;
绘制单元,用于绘制所述落入视野范围部分的矢量图。
从以上技术方案可以看出,本发明实施例具有以下优点:通过获取视野范围相关参数,确定视野范围;计算并确定将要绘制的矢量图落入视野范围部分;绘制所述落入视野范围部分的矢量图。达到减小顶点屏幕坐标值的目的,从而消除了顶点屏幕坐标值过大引起的图形畸变或者消失,提高矢量图绘制稳定性。另外,只绘制落入视野范围内的矢量图,降低图形渲染面积,从而提高矢量图绘制速度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例方法流程示意图;
图2为本发明实施例任意多边形裁剪流程示意图;
图3-1为本发明实施例三角形裁剪示意图;
图3-2为本发明实施例三角形裁剪示意图;
图3-3为本发明实施例三角形裁剪示意图;
图4-1为本发明实施例多边形裁剪示意图;
图4-2为本发明实施例多边形裁剪示意图;
图4-3为本发明实施例多边形裁剪示意图;
图4-4为本发明实施例多边形裁剪示意图;
图5-1为本发明实施例矩形裁剪示意图;
图5-2为本发明实施例矩形裁剪示意图;
图5-3为本发明实施例矩形裁剪示意图;
图5-4为本发明实施例矩形裁剪示意图;
图6-1为本发明实施例矩形裁剪示意图;
图6-2为本发明实施例矩形裁剪示意图;
图6-3为本发明实施例矩形裁剪示意图;
图7-1为本发明实施例圆形裁剪示意图;
图7-2为本发明实施例圆形裁剪示意图;
图7-3为本发明实施例圆形裁剪示意图;
图7-4为本发明实施例圆形裁剪示意图;
图7-5为本发明实施例圆形裁剪示意图;
图7-6为本发明实施例圆形裁剪示意图;
图7-7为本发明实施例圆形裁剪示意图;
图7-8为本发明实施例圆形裁剪示意图;
图8为本发明实施例装置结构示意图;
图9为本发明实施例装置结构示意图;
图10为本发明实施例装置结构示意图;
图11为本发明实施例装置结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供了一种矢量图绘制方法,如图1所示,包括:
101:获取视野范围相关参数,确定视野范围;
由于视野范围可以是整个屏幕,那么上述视野范围相关参数可以是顶点屏幕坐标;视野范围也可以是屏幕内的一个区域,所以上述视野范围相关参数还可以是视野范围的顶点坐标或者是视野范围的边线等参数;可以理解的是,视野范围相关参数也可以是其他能够确定视野范围的参数,本发明实施例对此不予限定。
获取视野范围相关参数,以若获取到的是顶点屏幕坐标为例,可以是:接收用户输入的顶点屏幕坐标值,那么此时通过用户输入的屏幕坐标值来确定视野范围,。比如,若视野范围为矩形,用户可以输入该视野范围三个顶点的屏幕坐标值或者该视野范围某一对角线上两个顶点的屏幕坐标;若屏幕为矩形还可以是:获取屏幕右下角位置的坐标作为顶点屏幕坐标,那么,此时可以确定:默认的屏幕的左上角坐标(0,0)到屏幕右下角的位置坐标的范围为视野范围,即视野范围等于屏幕的大小。若获取到的是视野范围的边线,那么计算得到各边线间的交点,各交点以及各交点之间的边线围的图形即为视野范围。
102:计算并确定将要绘制的矢量图落入视野范围部分;
103:绘制上述落入视野范围部分的矢量图。
在本发明实施例中,视野范围可以是矩形,也可以是其他形状,本发明实施例对此不予限定。
进一步地,本发明实施例还提供了依据图形的几何类型进行绘制的方案,上述102和103计算并确定将要绘制的矢量图落入视野范围部分;绘制上述落入视野范围的部分的矢量图包括:
确定将要绘制的矢量图的几何图形类型,若上述将要绘制的矢量图为折线形、矩形、任意多边形中的任意一种;上述任意多边形为除矩形以外的任意多边形;则获取将要绘制的矢量图的在视野范围内的顶点,以及将要绘制的矢量图与视野范围的边线的交点;
依据将要绘制的矢量图的在视野范围内的顶点,以及将要绘制的矢量图与视野范围的边线的交点,绘制落入视野范围部分的矢量图。
上述实施例中,获取将要绘制的矢量图的在视野范围内的顶点的方法可以是:绘图软件在执行绘图前会接收屏幕的经纬度坐标值,然后将经纬度坐标值转化为以屏幕坐标为基准的坐标,从而得到将要绘制的矢量图的顶点坐标值。然后判断将要绘制的矢量图的顶点坐标值是否在视野范围的坐标值范围内,如果在,那么可以确定该顶点在视野范围内,否则该顶点在视野范围外。
上述依据图形的几何类型进行绘制的方案中,若将要绘制的矢量图为矩形,视野范围为矩形也为矩形,本发明实施例还提供了一个可选方案如下:
若上述将要绘制的矢量图为矩形且上述视野范围为矩形,则上述获取将要绘制的矢量图的在视野范围内的顶点,以及将要绘制的矢量图与视野范围的边线的交点包括:获取将要绘制的矩形的矢量图落入矩形视野范围的顶点,以及上述落入矩形视野范围的顶点和该顶点相邻的顶点的连线与上述矩形视野范围的边线的交点;
上述依据将要绘制的矢量图的在视野范围内的顶点,以及将要绘制的矢量图与视野范围的边线的交点,绘制落入视野范围部分的矢量图包括:依据上述将要绘制的矩形的矢量图落入矩形视野范围的顶点,以及上述落入矩形视野范围的顶点和该顶点相邻的顶点的连线与上述矩形视野范围的边线的交点绘制矩形的矢量图。
更具体地,本发明实施例给出了获取矢量图与视野范围的边线的交点,以及矢量图的顶点的方案可以是:
顺序遍历将要绘制的矢量图的顶点,判断当前顶点是否在视野范围内及计算当前顶点与下一顶点的连线与视野范围的边线是否存在交点;
若当前顶点在视野范围内则记录当前顶点,若存在交点则记录交点;
上述依据矢量图的顶点,以及矢量图与视野范围的边线的交点,绘制落入视野范围部分的矢量图包括:依据记录的顶点以及记录的交点绘制落入视野范围部分的矢量图。
进一步地,本发明实施例提供的依据图形的几何类型进行绘制的方案,上述102和103中,计算并确定将要绘制的矢量图落入视野范围部分;绘制上述落入视野范围的部分的矢量图包括:
确定将要绘制的矢量图的几何图形类型,若上述将要绘制的矢量图为圆形;则获取将要绘制的矢量图的圆心坐标以及半径;获取视野范围的顶点;
若圆心坐标在视野范围内,并且半径大于预定线段长度时,以获取的圆心坐标为圆心,以预定线段的长度为半径绘制落入视野范围的圆形矢量图;上述预定线段长度为视野范围的边线上距离最远的两点的距离;若视野范围是矩形,那么这个预定线段的长度等于视野范围的矩形的对角线的长度;
若圆心坐标在视野范围内,并且半径小于预定线段长度,以获取的圆心坐标和半径绘制落入视野范围的圆形矢量图;
若圆心坐标在视野范围外,则确定将要绘制的矢量图与视野范围的边线的交点;
若交点个数为0,且视野范围的顶点均在将要绘制的矢量图内,则以获取的圆心坐标为圆心,以上述预定线段长度为半径绘制落入视野范围的圆形矢量图;
若交点个数为2,并且两交点之间的弧长与两交点距离的差值大于阈值,以获取的圆心坐标和半径绘制落入视野范围的圆形矢量图;
若交点个数为2,并且两交点之间的弧长与两交点距离的差值小于阈值时,依据上述两个交点以及视野范围的落入将要绘制的矢量图内的顶点绘制落入视野范围部分的矢量图;
若交点个数大于等于2,则以获取的圆心坐标和半径绘制落入视野范围的圆形矢量图。
上述阈值的取值范围可以是0.05~1.0,优选为0.1,具体取值本发明实施例不予限定。
以上实施例提供了依据图形的几何类型进行绘制的方案,在后续实施例中将对此给出更加详细的说明。
进一步地,为了消除采用上述方法对矢量图进行的裁剪的痕迹被显示出来,上述方法还包括:修改绘制的矢量图的参数,使上述视野范围的边线在上述绘制的矢量图以内。在本方案中具体修改多少可以依据显示区域的边线宽度来确定,只要使上述视野范围的边线在上述绘制的矢量图以内就可以了。
本发明实施例通过获取视野范围相关参数,确定视野范围;计算并确定将要绘制的矢量图落入视野范围部分;绘制上述落入视野范围部分的矢量图。达到减小顶点屏幕坐标值的目的,从而消除了顶点屏幕坐标值过大引起的图形畸变或者消失,提高矢量图绘制稳定性;另外只绘制落入视野范围内的矢量图,降低图形渲染面积,从而提高矢量图绘制速度。
举例说明:若地图上绘制了一条线段,顶点坐标是(-10000,20)(10000,20),这样这条线段的长度就是20000个像素,若在地图上绘制则需要渲染20000个像素,而且直接渲染可能导致线显示不稳定。假如屏幕大小只为0-400(宽),0-400(高),也就是说用户可以看到的线段长度只有400个像素,剩下19600像素用户并没有看到。为了高效稳定地显示这条线,本发明实施例可以依据视野范围,计算这条线段坐标落入视野范围的部分,计算得到该线段落入视野范围的顶点分别是(0,20)(400,20),最终只需绘制(0,20)(400,20)的线段即可。这样可以消除顶点屏幕坐标值过大引起的图形畸变或者消失,提高矢量图绘制稳定性;另外只绘制落入视野范围内的矢量图,降低图形渲染面积,从而提高矢量图绘制速度。
以下就对矢量图进行分类后的“裁剪”处理进行详细举例说明,在以下举例中均以在地图上绘制矢量图为例,并且视野范围为矩形;可以理解的是矢量图可以绘制在其他图形上,并不局限于地图;视野范围也可以是其他几何类型;因此以下举例不应理解为对本发明实施例的限定。
顶点屏幕坐标值过大引起的矢量图形显示不稳定的消除方法,首先可以判断所绘矢量图形所属几何类型,本发明实施例中几何类型包括:任意多边形、折线形、矩形和圆形四种;由于矩形结构较简单并且是常见的一种矢量图形,所以将其从任意多边形中抽出单独列为一种类型;本发明实施例所称的任意多边形不包括矩形;任意多边形是由3条或3条以上的边组成的封闭图形可以是凸多边形也可以是凹多边形。
以下结合Silverlight(一种网络地图开发语言)绘图的具体实例,并参照附图,对本发明实施例进行进一步的说明。分别从任意多边形、折线形、矩形和圆形几个方面来说明。以下举例中视野范围均以矩形为例进行说明,视野范围为其他图形时执行方法可参照矩形的视野范围来实现。
一、任意多边形,如图2所示,本流程以视野范围为矩形为例进行说明,包括:
201:接收用户输入的顶点屏幕坐标或视野矩形边;
202:从视野范围的第一条边开始遍历;初始化边为1;
需要说明的是,如果在201中用户输入的是顶点屏幕坐标,那么202中将从屏幕的第一条边开始遍历。可以理解的是地图视野的范围与屏幕显示的范围是可以重合的。
203:判断边数<=4是否成立;如果是,进入205,如果否进入204;
需要说明的是本步骤中“判断边数<=4是否成立”的4,是以视野范围为正方形为例进行说明的,若视野范围是N边形,那么此处的“4”修改为N;可以理解的是此处N为大于等于3的自然数。
204:算法结束;
205:判断将要绘制的矢量图的顶点数是否为0,如果是进入204,如果否进入206;
206:设置i=1,进入207;
207:判断i<顶点数是否成立,如果是,进入208,如果否进入216;
208:判断i点是否在视野范围内,如果是进入209,如果否进入210;
209:判断i+1点是否在视野范围内,如果是进入211,如果否进入212;
210:判断i+1点是否在视野范围内,如果是进入213;如果否进入214;
211:存储第i+1点,进入214;
212:存储交点,进入214;
213:存储交点和第i+1点进入214;
214:执行i++;进入207;
215:将存储的点集合作为新数组,进入216;
216:边数累加,进入203。
以三角形的裁剪为例,如附图3-1到图3-3所示,其中实线方框为视野范围的边线,虚线三角形为将要绘制的矢量图,裁剪方案如下:
首先用矩形编号为1的边裁剪三角形,如图3-1所示,由于点1与点2均在边1的右边,且点1是前一个点,按裁剪原则存储当前点点2。
用边1裁剪2、3点,由于前一个点点2在边1的右边,当前点点3在左边,则存储交点。
用边1裁剪3、1点,由于前一个点点3在边1左边,当前点点1在边1右边,则存储交点及当前点点1。经过边1裁剪后的三角形如图3-2。
接下来用边2裁减上图的多边形。点1与点2均在边2上方,则存储点2。
前一个点点2在边2上方,当前点点3在边2下方,则存储点2、点3构成的直线与边2相交的点。
前一个点点3和当前点点4均在边2下方,则不存储任何值。
前一个点点4在边2下方,当前点点1在边2上方,则存储点4和点1构成的直线与边2的交点和点1。
裁减后的多边形如图3-3。由于下图3-3中的点均在边3的左边,边4的下方,则裁剪完毕。
本发明实施例还给出了裁剪的实例,将视野范围的四边作为裁剪边顺序裁剪任意多边形,如图4-1到4-4所示,其中箭头尾端为当前顶点的前一个顶点,箭头指向的点为当前顶点。
图4-1:当前一个顶点和当前顶点都在矩形内时,输出当前点;
图4-2:当前一个顶点在矩形内,当前顶点在矩形外时,输出相应边与矩形边交点;
图4-3:当前一个顶点与当前顶点都不在矩形内时,不存储任何点;
图4-4:当前一个顶点在矩形外,当前顶点在矩形内时,输出交点和当前点。
二、多折线
多折线的几何裁剪方案与多变形的算法非常类似,具体差别以图4来说明。
如果绘制多边形,则开始时应存储点1,点2,点3,点1共四个点作为程序输入项,而绘制多折线时,只要存储点1,点2,点3即可。
如果绘制多边形,根据图4的方案进行裁剪,而绘制多折线时,可以首先要对点1进行判断,如果点1在地图视野范围内,则存储该点,否则不存储,之后再按图4列出的规则进行裁剪。
三、矩形
如果判断将要绘制的矢量图形为矩形,由于架构(Silverlight的架构)中绘制矩形的方式只与矩形左上角坐标和矩形宽、高相关,则矩形的裁剪算法只涉及到修正矩形左上角坐标及矩形的宽、高。根据矩形左上角坐标是否位于地图视野矩形内,分情况讨论,具体的处理过程如下:
当矩形左上角在地图视野内时,仅需要调整地图宽、高即可:
如果所绘的矩形宽度>当前地图视野矩形的宽度,则所绘的矩形宽度=当前地图视野矩形的宽度;
如果所绘的矩形高度>当前地图视野矩形的高度,则所绘的矩形高度=当前地图视野矩形的高度。
当矩形左上角在地图视野范围外时,需同时处理矩形左上角坐标及其宽高:
如果矩形左上角横坐标<选定的某一负值,则矩形左上角横坐标=选定的某一负值;矩形的宽度=矩形的宽度+矩形左上角的横坐标+(-选定的某一负值);
如果矩形的宽度>地图视野矩形宽度+2*(-选定的某一负值),则矩形的宽度=地图视野矩形宽度+2*(-选定的某一负值);
如果矩形左上角纵坐标<选定的某一负值,则矩形左上角纵坐标=选定的某一负值;矩形的高度=矩形的高度+矩形左上角的纵坐标+(-选定的某一负值);
如果矩形的高度>当前地图视野矩形高度+2*(-选定的某一负值),则矩形的高度=当前地图视野矩形高度+2*(-选定的某一负值)。
需要说明的是上述“选定的某一负值”可以由开发者确定的,正值范围需要大于视野矩形的边线宽度,但是也不是越大越好,如果设置太大了会增加绘制负担。具体可以设置为大于100,小于1000均可。一般可以设置为500。
以下就上述方案进行举例说明:若将要绘制的矢量图形为矩形,则可以根据矩形左上角坐标是否位于地图视野范围内,调整矩形的长和宽的大小或同时调整矩形左上角的坐标。具体裁剪方法如附图5-1到5-4和附图6-1到6-3所示。其中实线方框为视野范围的边界,虚线方框为将要绘制的矢量图形。
如图5-1所示,矩形左上角坐标在地图视野范围外,首先如图5-2所示改变左上角坐标,将矩形从视野范围的左上角裁剪,如图5-3所示调整矩形宽和高。其中图5-3将要绘制的矢量图与视野范围的边线重合了。
如图6-1所示,矩形左上角在地图视野内,如图6-2所示调整地图宽、高。
为了消除视野范围内的矩形裁剪的痕迹,如图5-4、6-3所示可以扩大将要绘制的矢量图的矩形范围。
四、圆形
若将要绘制的矢量图形为圆,抽出典型的情况进行分析,如图6-5所示。当矩形和圆在矩形不同边有两个交点时,根据半径大小来判断是画圆还是画多边形。判断:弧AB-直线AB<阈值,这一条件是否成立。当该条件成立时画多边形,否则画圆。当画多边形时,需要根据交点所在的矩形边和圆心所在位置,来确定多边形形状。4条边共有6种边的组合方式,加上判断圆心位置则共有12种。
具体的算法流程如下:
(1):输入将要绘制的圆的圆心坐标、半径,并将地图视野矩形四条边以逆时针顺序存储起来。本步骤中将要绘制的圆是将要绘制的矢量图。
(2):判断圆心是否位于地图矩形视野内,如果不在,转步骤3,如果在,判断半径大小。半径大于矩形对角线时,修正该半径以矩形对角线为半径绘制落入视野范围的圆形矢量图;小于对角线时,以原始半径绘制落入视野范围的圆形矢量图。然后转步骤8。
(3):遍历矩形四条边与圆的交点,存储所有的交点坐标。
(4):如果交点个数为0,转步骤5;如果交点个数为2,转步骤6;如果交点个数大于2,转步骤7。
(5):判断矩形四个顶点是否在圆内,如果不在,转步骤8;如果在,以当前地图中心点为圆心,以当前地图视野矩形对角线为半径绘制圆,然后转步骤8。
(6):判断两交点之间的弧长与交点直线距离的差值。差值大于阈值时,以原始圆心及半径绘制落入视野范围的圆形矢量图;差值小于阈值时,枚举出两交点所在矩形边情形并根据各种情形圆心位置绘制多边形,然后转步骤8。
(7):以原始圆心及半径绘制落入视野范围的圆形矢量图。
(8):算法结束。
上述的所绘矢量图形为圆形时,根据圆心在矩形区内外的情况,以下就其中的8种情况讨论:如图7-1到7-8所示,其中示意了圆的半径r,对角线,圆心a、b;交点A、B;其中虚线圆为将要绘制的矢量图,实线框为视野范围的边线。
如图7-1所示,圆心在矩形内且半径小于矩形对角线长度,按原始半径绘制落入视野范围的圆形矢量图;
如图7-2所示,当圆心在矩形内且半径大于对角线长度时,修正圆半径,以对角线长度为半径,圆心不变,绘制落入视野范围的圆形矢量图。
如图7-3所示,当圆心在矩形外面,且圆与矩形只有一个交点时,由于圆位于地图视野范围以外,所以无需绘制圆。
如图7-4所示,当圆与矩形同一边有两个交点时,从圆与矩形的几何关系可以判断出圆半径小于同矩形相交的那一边边长,所以按原始半径绘制落入视野范围的圆形矢量图。
如图7-5所示,当圆与矩形的不同边共有两个交点时,根据半径大小来判断是画圆还是画多边形。判断条件为:弧AB-直线AB<阈值。当该条件成立时画多边形,否则画圆。
如图7-6所示,当圆与矩形不相交,且矩形四个顶点不在圆内时,由于圆位于地图视野范围以外,此时无需画圆。
如图7-7所示,当圆与矩形不相交,且矩形顶点在圆内时,以地图视野矩形中心点为圆心,以地图视野矩形对角线为半径绘制落入视野范围的圆形矢量图。
如图7-8所示,当圆与矩形有两个以上交点时,以原始半径绘制落入视野范围的圆形矢量图,圆心不变。
本发明实施例还提供了一种矢量图绘制装置,如图8所示,包括:
视野确定单元801,用于获取视野范围相关参数,确定视野范围;
绘制范围确定单元802,用于计算并确定将要绘制的矢量图落入视野范围部分;
绘制单元803,用于绘制上述落入视野范围部分的矢量图。
如图9所示,上述装置还包括:
图形确定单元901,用于确定将要绘制的矢量图的几何图形类型;
上述视野确定单元801,具体用于若上述将要绘制的矢量图为折线形、矩形、任意多边形中的任意一种;上述任意多边形为除矩形以外的任意多边形;则获取将要绘制的矢量图的在视野范围内的顶点,以及将要绘制的矢量图与视野范围的边线的交点;
上述绘制单元803,具体用于依据将要绘制的矢量图的在视野范围内的顶点,以及将要绘制的矢量图与视野范围的边线的交点,绘制落入视野范围部分的矢量图。
如图9所示,
上述视野确定单元801,具体若上述将要绘制的矢量图为矩形且上述视野范围为矩形,则获取将要绘制的矩形的矢量图落入矩形视野范围的顶点,以及上述落入矩形视野范围的顶点和该顶点相邻的顶点的连线与上述矩形视野范围的边线的交点;
上述绘制单元803,具体用于依据上述将要绘制的矩形的矢量图落入矩形视野范围的顶点,以及上述落入矩形视野范围的顶点和该顶点相邻的顶点的连线与上述矩形视野范围的边线的交点。
更具体地,如图10所示,上述视野确定单元801包括:
点记录单元1001,用于顺序遍历将要绘制的矢量图的顶点,判断当前顶点是否在视野范围内及计算当前顶点与下一顶点的连线与视野范围的边线是否存在交点;若当前顶点在视野范围内则记录当前顶点,若存在交点则记录交点;
上述绘制单元803,用于依据记录的顶点以及记录的交点绘制落入视野范围部分的矢量图。
如图9所示,上述装置还包括:
图形确定单元901,用于确定将要绘制的矢量图的几何图形类型;
上述视野确定单元801,具体用于若上述将要绘制的矢量图为圆形,则获取将要绘制的矢量图的圆心坐标以及半径;获取视野范围的顶点;
上述绘制单元803,具体用于若圆心坐标在视野范围内,并且半径大于预定线段,以上述圆心坐标为圆心,以预定线段的长度为半径绘制落入视野范围的圆形矢量图;上述预定线段长度为视野范围的边线上距离最远的两点的距离;
若圆心坐标在视野范围内,并且半径小于预定线段长度,以获取的圆心坐标和半径绘制落入视野范围的圆形矢量图;
若圆心坐标在视野范围外,则确定将要绘制的矢量图与视野范围的边线的交点;
若交点个数为0,且视野范围的顶点均在将要绘制的矢量图内,则以获取的圆心坐标为圆心,以上述预定线段长度为半径绘制落入视野范围的圆形矢量图;
若交点个数为2,并且两交点之间的弧长与两交点距离的差值大于阈值,以获取的圆心坐标和半径绘制落入视野范围的圆形矢量图;
若交点个数为2,并且两交点之间的弧长与两交点距离的差值小于阈值时,依据上述两个交点以及视野范围的落入将要绘制的矢量图内的顶点绘制落入视野范围部分的矢量图;
若交点个数大于等于2,则以获取的圆心坐标和半径绘制落入视野范围的圆形矢量图。
需要说明的是本发明实施例中的图形确定单元901其内部处理能力在以上实施例中可以是相同的,但在各具体实现中对其它单元数据处理的影响是不同的。因此,没有分别进行命名和绘图。
如图11所示,上述装置还包括:
修图单元1101,用于修改绘制的矢量图的参数,使上述视野范围的边线在上述绘制的矢量图以内。
本发明实施例通过获取视野范围相关参数,确定视野范围;计算并确定将要绘制的矢量图落入视野范围部分;绘制上述落入视野范围部分的矢量图。达到减小顶点屏幕坐标值的目的,从而消除了顶点屏幕坐标值过大引起的图形畸变或者消失,提高矢量图绘制稳定性;另外只绘制落入视野范围内的矢量图,降低图形渲染面积,从而提高矢量图绘制速度。
值得注意的是,上述用户设备和基站实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各方法实施例中的全部或部分步骤是可以通过程序来指令相关的硬件完成,相应的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (12)
1.一种矢量图绘制方法,其特征在于,包括:
获取视野范围相关参数,确定视野范围;
计算并确定将要绘制的矢量图落入视野范围部分;
绘制所述落入视野范围部分的矢量图。
2.根据权利要求1所述方法,其特征在于,所述计算并确定将要绘制的矢量图落入视野范围部分;绘制所述落入视野范围的部分的矢量图包括:
确定将要绘制的矢量图的几何图形类型,若所述将要绘制的矢量图为折线形、矩形、任意多边形中的任意一种;所述任意多边形为除矩形以外的任意多边形;则获取将要绘制的矢量图的在视野范围内的顶点,以及将要绘制的矢量图与视野范围的边线的交点;
依据将要绘制的矢量图的在视野范围内的顶点,以及将要绘制的矢量图与视野范围的边线的交点,绘制落入视野范围部分的矢量图。
3.根据权利要求2所述方法,其特征在于,若所述将要绘制的矢量图为矩形且所述视野范围为矩形,则所述获取将要绘制的矢量图的在视野范围内的顶点,以及将要绘制的矢量图与视野范围的边线的交点包括:
获取将要绘制的矩形的矢量图落入矩形视野范围的顶点;
获取所述落入矩形视野范围的顶点与其相邻顶点的连线与所述矩形视野范围的边线的交点;
所述依据将要绘制的矢量图的在视野范围内的顶点,以及将要绘制的矢量图与视野范围的边线的交点,绘制落入视野范围部分的矢量图包括:
依据所述将要绘制的矩形的矢量图落入矩形视野范围的顶点,以及所述落入矩形视野范围的顶点与其相邻顶点的连线与矩形视野范围的边线的交点绘制矩形的矢量图。
4.根据权利要求2所述方法,其特征在于,获取将要绘制的矢量图的在视野范围内的顶点,以及将要绘制的矢量图与视野范围的边线的交点包括:
顺序遍历将要绘制的矢量图的顶点,判断当前顶点是否在视野范围内及计算当前顶点与下一顶点的连线与视野范围的边线是否存在交点;
若当前顶点在视野范围内则记录当前顶点,若存在交点则记录交点;
所述依据矢量图的顶点,以及矢量图与视野范围的边线的交点,绘制落入视野范围部分的矢量图包括:
依据记录的顶点以及记录的交点绘制落入视野范围部分的矢量图。
5.根据权利要求1所述方法,其特征在于,所述计算并确定将要绘制的矢量图落入视野范围部分;绘制所述落入视野范围的部分的矢量图包括:
确定将要绘制的矢量图的几何图形类型,若所述将要绘制的矢量图为圆形,则获取将要绘制的矢量图的圆心坐标以及半径;获取视野范围的顶点;
若圆心坐标在视野范围内,并且半径大于预定线段,以所述圆心坐标为圆心,以预定线段的长度为半径绘制落入视野范围的圆形矢量图;所述预定线段长度为视野范围的边线上距离最远的两点的距离;
若圆心坐标在视野范围内,并且半径小于预定线段长度,以获取的圆心坐标和半径绘制落入视野范围的圆形矢量图;
若圆心坐标在视野范围外,则确定将要绘制的矢量图与视野范围的边线的交点;
若交点个数为0,且视野范围的顶点均在将要绘制的矢量图内,则以获取的圆心坐标为圆心,以所述预定线段长度为半径绘制落入视野范围的圆形矢量图;
若交点个数为2,并且两交点之间的弧长与两交点距离的差值大于阈值,以获取的圆心坐标和半径绘制落入视野范围的圆形矢量图;
若交点个数为2,并且两交点之间的弧长与两交点距离的差值小于阈值时,依据所述两个交点以及视野范围的落入将要绘制的矢量图内的顶点绘制落入视野范围部分的矢量图;
若交点个数大于等于2,则以获取的圆心坐标和半径绘制落入视野范围的圆形矢量图。
6.根据权利要求1至5任意一项所述方法,其特征在于,还包括:
修改绘制的矢量图的参数,使所述视野范围的边线在所述绘制的矢量图以内。
7.一种矢量图绘制装置,其特征在于,包括:
视野确定单元,用于获取视野范围相关参数,确定视野范围;
绘制范围确定单元,用于计算并确定将要绘制的矢量图落入视野范围部分;
绘制单元,用于绘制所述落入视野范围部分的矢量图。
8.根据权利要求7所述装置,其特征在于,还包括:
图形确定单元,用于确定将要绘制的矢量图的几何图形类型;
所述视野确定单元,具体用于若所述将要绘制的矢量图为折线形、矩形、任意多边形中的任意一种;所述任意多边形为除矩形以外的任意多边形;则获取将要绘制的矢量图的在视野范围内的顶点,以及将要绘制的矢量图与视野范围的边线的交点;
所述绘制单元,具体用于依据将要绘制的矢量图的在视野范围内的顶点,以及将要绘制的矢量图与视野范围的边线的交点,绘制落入视野范围部分的矢量图。
9.根据权利要求8所述装置,其特征在于,
所述视野确定单元,具体若所述将要绘制的矢量图为矩形且所述视野范围为矩形,则获取将要绘制的矩形的矢量图落入矩形视野范围的顶点,以及所述落入矩形视野范围的顶点和该顶点相邻的顶点的连线与所述矩形视野范围的边线的交点;
所述绘制单元,具体用于依据所述将要绘制的矩形的矢量图落入矩形视野范围的顶点,以及所述落入矩形视野范围的顶点和该顶点相邻的顶点的连线与所述矩形视野范围的边线的交点绘制矩形的矢量图。
10.根据权利要求8所述装置,其特征在于,所述视野确定单元包括:
点记录单元,用于顺序遍历将要绘制的矢量图的顶点,判断当前顶点是否在视野范围内及计算当前顶点与下一顶点的连线与视野范围的边线是否存在交点;若当前顶点在视野范围内则记录当前顶点,若存在交点则记录交点;
所述绘制单元,用于依据记录的顶点以及记录的交点绘制落入视野范围部分的矢量图。
11.根据权利要求7所述装置,其特征在于,还包括:
图形确定单元,用于确定将要绘制的矢量图的几何图形类型;
所述视野确定单元,具体用于若所述将要绘制的矢量图为圆形,则获取将要绘制的矢量图的圆心坐标以及半径;获取视野范围的顶点;
所述绘制单元,具体用于若圆心坐标在视野范围内,并且半径大于预定线段,以所述圆心坐标为圆心,以预定线段的长度为半径绘制落入视野范围的圆形矢量图;所述预定线段长度为视野范围的边线上距离最远的两点的距离;
若圆心坐标在视野范围内,并且半径小于预定线段长度,以获取的圆心坐标和半径绘制落入视野范围的圆形矢量图;
若圆心坐标在视野范围外,则确定将要绘制的矢量图与视野范围的边线的交点;
若交点个数为0,且视野范围的顶点均在将要绘制的矢量图内,则以获取的圆心坐标为圆心,以所述预定线段长度为半径绘制落入视野范围的圆形矢量图;
若交点个数为2,并且两交点之间的弧长与两交点距离的差值大于阈值,以获取的圆心坐标和半径绘制落入视野范围的圆形矢量图;
若交点个数为2,并且两交点之间的弧长与两交点距离的差值小于阈值时,依据所述两个交点以及视野范围的落入将要绘制的矢量图内的顶点绘制落入视野范围部分的矢量图;
若交点个数大于等于2,则以获取的圆心坐标和半径绘制落入视野范围的圆形矢量图。
12.根据权利要求7至11任意一项所述装置,其特征在于,还包括:
修图单元,用于修改绘制的矢量图的参数,使所述视野范围的边线在所述绘制的矢量图以内。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110378955.7A CN103136767B (zh) | 2011-11-24 | 2011-11-24 | 一种矢量图绘制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110378955.7A CN103136767B (zh) | 2011-11-24 | 2011-11-24 | 一种矢量图绘制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103136767A true CN103136767A (zh) | 2013-06-05 |
CN103136767B CN103136767B (zh) | 2016-08-17 |
Family
ID=48496556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110378955.7A Active CN103136767B (zh) | 2011-11-24 | 2011-11-24 | 一种矢量图绘制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103136767B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268911A (zh) * | 2014-09-18 | 2015-01-07 | 腾讯科技(深圳)有限公司 | 绘制地图中路线的方法和装置 |
CN104715452A (zh) * | 2013-12-12 | 2015-06-17 | 鸿合科技有限公司 | 正棱柱平面显示方法及装置 |
CN105719268A (zh) * | 2014-12-02 | 2016-06-29 | 北京四维图新科技股份有限公司 | 一种地图数据的处理方法及装置 |
CN106033409A (zh) * | 2015-03-20 | 2016-10-19 | 广州金山移动科技有限公司 | 一种顶点编辑方法及装置 |
CN106408627A (zh) * | 2016-09-21 | 2017-02-15 | 中国航空无线电电子研究所 | 一种线状符号绘制方法 |
CN106504299A (zh) * | 2016-09-29 | 2017-03-15 | 王征 | 动态虚拟标尺模块和线段长度计算模块以及矢量图画图模块系统和画图方法 |
CN107943883A (zh) * | 2017-11-15 | 2018-04-20 | 湖南上容信息技术有限公司 | 巨大矢量图层的快速渲染方法 |
CN111062852A (zh) * | 2019-12-16 | 2020-04-24 | 百度国际科技(深圳)有限公司 | 一种地图渲染方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5287440A (en) * | 1989-03-20 | 1994-02-15 | Hitachi, Ltd. | Graphic processing method for drawing an area defined by clipping of a variable shape and apparatus for doing the same |
CN1476570A (zh) * | 2001-09-04 | 2004-02-18 | �ֹ��� | 提供使用电子地图信息的服务的信息处理系统 |
CN101488141A (zh) * | 2008-12-16 | 2009-07-22 | 南京莱斯大型电子系统工程有限公司 | 电子地图数据处理方法 |
CN101532843A (zh) * | 2008-03-12 | 2009-09-16 | 鸿富锦精密工业(深圳)有限公司 | 导航装置及其导航方法 |
CN101639847A (zh) * | 2009-06-01 | 2010-02-03 | 北京四维图新科技股份有限公司 | 电子地图查询方法、电子地图查询系统和导航仪 |
CN102054388A (zh) * | 2009-11-03 | 2011-05-11 | 厦门雅迅网络股份有限公司 | 一种接收和显示地图的方法 |
-
2011
- 2011-11-24 CN CN201110378955.7A patent/CN103136767B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5287440A (en) * | 1989-03-20 | 1994-02-15 | Hitachi, Ltd. | Graphic processing method for drawing an area defined by clipping of a variable shape and apparatus for doing the same |
CN1476570A (zh) * | 2001-09-04 | 2004-02-18 | �ֹ��� | 提供使用电子地图信息的服务的信息处理系统 |
CN101532843A (zh) * | 2008-03-12 | 2009-09-16 | 鸿富锦精密工业(深圳)有限公司 | 导航装置及其导航方法 |
CN101488141A (zh) * | 2008-12-16 | 2009-07-22 | 南京莱斯大型电子系统工程有限公司 | 电子地图数据处理方法 |
CN101639847A (zh) * | 2009-06-01 | 2010-02-03 | 北京四维图新科技股份有限公司 | 电子地图查询方法、电子地图查询系统和导航仪 |
CN102054388A (zh) * | 2009-11-03 | 2011-05-11 | 厦门雅迅网络股份有限公司 | 一种接收和显示地图的方法 |
Non-Patent Citations (4)
Title |
---|
杨玲 等: "大规模矢量地图与多分辨率DEM快速叠加的方法", 《中国科学:信息科学》, vol. 40, no. 6, 20 June 2010 (2010-06-20), pages 801 - 808 * |
罗胜 等: "矢量地图图幅裁剪技术研究", 《测绘工程》, vol. 16, no. 4, 25 August 2007 (2007-08-25) * |
胡庆伟等: "数字地图的多边形裁剪", 《城市勘测》, no. 06, 30 December 2006 (2006-12-30), pages 39 - 41 * |
郑浩: "基于数据库的任意区域DEM拼接与裁剪", 《测绘通报》, no. 1, 25 January 2007 (2007-01-25), pages 68 - 70 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104715452A (zh) * | 2013-12-12 | 2015-06-17 | 鸿合科技有限公司 | 正棱柱平面显示方法及装置 |
CN104715452B (zh) * | 2013-12-12 | 2017-12-15 | 鸿合科技有限公司 | 正棱柱平面显示方法及装置 |
CN104268911B (zh) * | 2014-09-18 | 2016-04-13 | 腾讯科技(深圳)有限公司 | 绘制地图中路线的方法和装置 |
CN104268911A (zh) * | 2014-09-18 | 2015-01-07 | 腾讯科技(深圳)有限公司 | 绘制地图中路线的方法和装置 |
CN105719268B (zh) * | 2014-12-02 | 2019-05-07 | 北京四维图新科技股份有限公司 | 一种地图数据的处理方法及装置 |
CN105719268A (zh) * | 2014-12-02 | 2016-06-29 | 北京四维图新科技股份有限公司 | 一种地图数据的处理方法及装置 |
CN106033409A (zh) * | 2015-03-20 | 2016-10-19 | 广州金山移动科技有限公司 | 一种顶点编辑方法及装置 |
CN106033409B (zh) * | 2015-03-20 | 2019-07-26 | 广州金山移动科技有限公司 | 一种顶点编辑方法及装置 |
CN106408627A (zh) * | 2016-09-21 | 2017-02-15 | 中国航空无线电电子研究所 | 一种线状符号绘制方法 |
CN106408627B (zh) * | 2016-09-21 | 2019-05-24 | 中国航空无线电电子研究所 | 一种线状符号绘制方法 |
CN106504299A (zh) * | 2016-09-29 | 2017-03-15 | 王征 | 动态虚拟标尺模块和线段长度计算模块以及矢量图画图模块系统和画图方法 |
CN106504299B (zh) * | 2016-09-29 | 2019-03-29 | 王征 | 动态虚拟标尺模块和线段长度计算模块以及矢量图画图模块系统和画图方法 |
CN107943883A (zh) * | 2017-11-15 | 2018-04-20 | 湖南上容信息技术有限公司 | 巨大矢量图层的快速渲染方法 |
CN111062852A (zh) * | 2019-12-16 | 2020-04-24 | 百度国际科技(深圳)有限公司 | 一种地图渲染方法、装置、电子设备及存储介质 |
CN111062852B (zh) * | 2019-12-16 | 2023-10-17 | 阿波罗智联(北京)科技有限公司 | 一种地图渲染方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103136767B (zh) | 2016-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103136767A (zh) | 一种矢量图绘制方法和装置 | |
CN102332056B (zh) | 基于信息可视化技术的房产数据可视化系统 | |
WO2017167284A1 (zh) | 商户配送范围的调整方法和装置 | |
CN104703044B (zh) | 一种图片弹幕发布方法 | |
CN107423445A (zh) | 一种地图数据处理方法、装置及存储介质 | |
JP5223062B2 (ja) | 3次元地図描画システム | |
CN101655993B (zh) | 复杂建筑物三维模型多分辨率建模方法 | |
US9965894B2 (en) | Three-dimensional map display system | |
AU2009236283A1 (en) | Content item placement | |
CN109241580B (zh) | 一种地块设计方法、装置、计算机设备和存储介质 | |
WO2011081919A2 (en) | Method for re-using photorealistic 3d landmarks for nonphotorealistic 3d maps | |
WO2015077188A1 (en) | Visualizing large graphs | |
US9983774B2 (en) | Authoring and consuming offline an interactive data analysis document | |
CN106582021B (zh) | 一种在游戏地图中绘制草坪的方法及系统 | |
CN103257876B (zh) | C3游戏地图动态加载的方法 | |
JP4960119B2 (ja) | ポイント基盤のレンダリング装置及び方法 | |
CN110148137A (zh) | 一种基于拼接的旋转显示屏的图像切割方法及系统 | |
CN108346169B (zh) | 一种二维矢量渲染方法及装置 | |
CN105812881A (zh) | 一种用户界面的窗口处理方法、系统及电视机 | |
CN107609003A (zh) | 一种乡村旅游推荐信息可视化方法及装置 | |
CN109886890A (zh) | 一种应用图标处理方法及装置 | |
JP6087301B2 (ja) | 3次元地図表示システム | |
Droppova | The tools of automated generalization and building generalization in an ArcGIS environment | |
CN110427583B (zh) | 应用于移动端地图海量线抽稀绘制的方法 | |
JP2010272032A (ja) | ポリゴンのアウトライン描画方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |