CN105513110A - 基于gpu的宽度渐变线型地图符号绘制方法 - Google Patents
基于gpu的宽度渐变线型地图符号绘制方法 Download PDFInfo
- Publication number
- CN105513110A CN105513110A CN201610015703.0A CN201610015703A CN105513110A CN 105513110 A CN105513110 A CN 105513110A CN 201610015703 A CN201610015703 A CN 201610015703A CN 105513110 A CN105513110 A CN 105513110A
- Authority
- CN
- China
- Prior art keywords
- width
- value
- line
- color
- row
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
Abstract
本发明涉及GIS领域和数字地图制图领域的一种符号化渲染技术,给出了一种基于GPU的宽度渐变线型地图符号绘制方法,实现了基于该方法的线状矢量要素在宽度上渐变的高效渲染和绘制。该方法包括以下步骤:首先确定需要绘制的线要素坐标序列,初始化最大和最小线宽,根据最大线宽构造三角化后的线三角网,将沿线走向的U参数和垂直于线走向的V参数传递给三角网中的每个顶点。根据需要填充的地图符号单元生成相应的颜色结构表,并将此颜色结构表、U-V参数、最大线宽和最小线宽传递到着色器程序中。利用Shader语言,根据每个顶点上的U-V值和线宽大小,基于指定的宽度渐变函数进行线要素的逐像素绘制,由此实现宽度渐变的矢量线型地图符号绘制。
Description
技术领域
本发明涉及GIS领域和电子地图领域的一种符号化渲染技术,给出了一种基于GPU(GraphicsProcessingUnit)可编程流水线Shader语言的宽度渐变线型地图符号的绘制方法,实现了基于该方法的渐宽线状矢量要素的高质量渲染和绘制,能够平滑的表达诸如河流、界线等在空间上存在渐变属性的要素实体。
背景技术
地理空间实体的符号化方法是地理信息领域和地图制图领域的重要研究内容。相比于常用的点符号和面符号,线符号由于其需要沿着线状要素的走向来填充绘制的特点,往往更加困难和耗时。除了常用的实线和虚线之外,地图表达中需要用的线型符号更为复杂。如城市主干道的线型符号是带有边框的双线图元;铁路符号是带有边框的黑白相间的图元;单边边界线符号是齿状的图元。这些线型符号利用不同几何形状组合而成一个带有语义信息的图元。传统的绘制方式是通过符号相关的特定函数,为每一个线型符号设计相应的绘制函数,这种方式应用场景固定,可扩展性不强。另一种常用的方式是利用组合绘制的方式来将地图符号分解,再根据分解出来的图元多次绘制矢量线;这种方式需要对原始的矢量线绘制多次,影响了其绘制效率。论文《面向GIS的矢量线状符号填充算法研究》(张海泉,潘懋,吴焕萍,等.《地理与地理信息科学》,2004,20(04):11-14.)介绍了这些基本方法。
其中,宽度渐变的线型地图符号还需要在沿线绘制的同时改变其线宽大小。渐宽线符号常用于表达空间上存在渐进变化和具有方向性的信息,如随着河流的走向,河流线要素需要被绘制为宽度变窄的线,从而反映河流的整体形态和流向。对于这种渐宽的线型符号的绘制,传统的方法有台阶式平行线算法、角平分线渐粗(细)算法和基于分段缓冲区的方法。但这些方法都需要将原始线要素根据其长度进行划分,得到几段首尾相连的线,再为这些线赋予不同的宽度,最后模拟实现宽度渐变的效果。论文《一种单线河流渐变符号的绘制方法》(李丽,王结臣,沈定涛,陈焱明.《测绘通报》,2008,11:64-67)给出了这几种方法的基本介绍。但是,这些方法仍然集中于纯软件绘制方法,对矢量线的划分、根据不同宽度进行缓冲区构建都比较耗时,难以满足实时动态地图绘制的要求,也难以适应硬件加速绘制和GPU计算的技术趋势。名称为“基于GPU的地图线形符号绘制方法及系统”,申请号201310125110.6的中国专利,在分析地图线形符号绘制的难点的基础上,公开了一种在Shader程序里面定制线型地图符号的绘制方法。但这种方法严格依赖于Shader编程,不同的线型符号需要在Shader里面大量的编程才能实现绘制;对于如何将各种各样的复杂线型地图符号映射到GPU像素计算的方面并没有给出方法,对于如何处理宽度渐变线型地图符号的绘制亦没有涉及。
因而,如何绘制宽度渐变的矢量线要素是计算机地图绘制中的一个亟待解决的问题。这种渐宽绘制需要适应于多种线型地图符号,而且不能改变原始矢量线数据。
发明内容
本发明的目的是在GPU可编程流水线和着色器技术的基础上,针对矢量线要素的宽度渐变符号化绘制问题,突破传统用多条不同宽度的线来模拟渐宽的方式,实现基于符号结构的矢量线要素宽度渐变的统一绘制。
本发明的技术方案是:
基于GPU的宽度渐变线型地图符号绘制方法,包括下列步骤:
步骤1初始化需要绘制的线状要素的点集序列,根据最大线宽生成需要绘制的三角形几何三角网:确定需要绘制的渐变线宽的最大线宽和最小线宽参数,遍历线状要素中的每一个顶点,按照半个最大线宽向两边扩展,同时生成相应的三角形集合,并为每个三角形的每个顶点赋予沿线走向的长度值U值和垂直于线走向的长度值V值,即U-V值,最终得到最后一个顶点的U值作为整条线最大的U值MaxU;
步骤2确定需要沿线重复填充的符号单元的颜色结构表:将需要填充的符号单元按照纵向-横向的结构进行分解,用列优先的二维数组和相应的符号单元属性来结构化映射一个符号单元;
步骤3在着色器中根据宽度渐变函数对线状要素进行逐像素绘制:基于传递到着色器里面的顶点U-V值,动态确定每个像素的U-V值,即像素在水平方向上到线起点的距离u'值和像素在垂直方向上到线的上边界的距离v'值,在着色器中利用一个确定的宽度渐变函数,计算该像素所处位置的宽度,由此在宽度范围内填充颜色表中的相应颜色。
所述步骤1中,将V值从0至最大线宽的范围内归一化到0至1的范围内,U值通过每个顶点距离起始点的距离除以最大线宽得到。
所述步骤2中,A.符号的颜色结构表:将符号单元按照其结构分解为几个列,每一列都包含其相应的行,每一行都包含其相应的四个角的颜色值,由此形成一系列的颜色单元来映射特定的符号;B.颜色结构表的单元属性:对于一个符号单元的颜色结构表,其每一列都包含相应的宽度属性和所包含的行数属性,每一行都包含相应的高度属性,每一列都包含一个布尔值来指明该列是否为背景列,整个颜色结构表包含总列数、总宽度和总高度属性。
所述步骤3中,A.宽度渐变函数:根据当前像素所在位置的u'值和v'值,用u'值除以最大U值MaxU得到所占的比例,结合最大宽度和最小宽度属性,按照公式w'=Width2+(Width1-Width2)×(MaxU–u')/MaxU计算得到每个像素所在位置的宽度,其中w'表示当前宽度,Width2表示最小宽度,Width1表达最大宽度,MaxU表示最大U值;B.根据U-V值获取在宽度范围内颜色的方法:首先根据当前像素的u'值,计算其在符号单元颜色结构表中的位置,利用公式U(p)=u'-SL×[u'/SL],其中U(p)表示在颜色结构表中的U值,SL表达符号的总宽度,[u'/SL]表示对u'/SL的结果进行取整得到小于u'值的SL的整数倍;接着根据当前像素的v'值,和计算得到的当前线宽w'值,利用公式V(p)=v'×EF–HE计算得到该像素相应的宽度范围,其中EF=1/w',HE=(EF-1)/2;通过U(p)和V(p)的值到颜色结构表中遍历每一列的宽度和每一行的高度来确定最终需要填充的颜色,如果V(p)值在0和1之间,则按照遍历得到的列-行索引值确定填充颜色;如果V(p)值小于0或者大于1,则填充透明色,由此绘制出宽度渐变的线要素。
本发明的方法可以利用GPU可编程流水线和着色器中像素着色器能够遍历每一个像素的特点,按照符号自身的结构信息,将符号的映射为二维的颜色结构表;根据确定的最大线宽和最小线宽动态计算每个像素所处位置的线宽值,并在该动态的线宽范围内进行颜色表取值,最终实现矢量线要素的宽度渐变绘制。
附图说明
图1是本发明方法的流程示意图。
图2是符号对应的颜色结构表的组织。
图3是对宽度渐变函数的说明。(a)是是宽度渐变函数的说明,(b)是在Shader中对宽度渐变函数的具体实现说明。
图4是根据U-V值获取在宽度范围内颜色的方法。(a)是V指的拉伸-缩放操作示例,(b)是在Shader中的对V值具体操作的说明。
图5是利用本发明设计的方法绘制矢量线要素的几种典型例图。(a)是实线符号的渐宽绘制效果,(b)是间断虚线符号的渐宽绘制效果,(c)是黑白相间的铁路符号的渐宽绘制效果,(d)是“栅栏”式的线型符号的渐宽绘制效果。
具体实施方式
下面结合附图和实施例做进一步说明。
图1为本发明方法的流程图。该方法包括以下步骤:首先确定需要绘制的线要素坐标序列,初始化最大和最小线宽,根据最大线宽构造三角化后的线三角网,将沿线走向的U参数和垂直于线走向的V参数传递给三角网中的每个顶点。根据需要填充的地图符号单元生成相应的颜色结构表,并将此颜色结构表、U-V参数、最大线宽和最小线宽传递到着色器程序中。利用Shader语言,根据每个顶点上的U-V值和线宽大小,基于指定的宽度渐变函数进行线要素的逐像素绘制,由此实现宽度渐变的矢量线型地图符号绘制。
所谓宽度渐变,就是指随着线的走向,线的宽度不断发生连续性的变化。在线宽不断变化的情况下,还需要对矢量线要素进行符号填充。所以符号的颜色结构表信息实际上控制了最终的颜色,而宽度渐变函数控制在什么宽度范围内填充颜色。
如图2所示,一个符号的颜色结构表信息按照整个符号的宽度SymbolLength,整个符号有多少列ColumnCount,每一列有多少行ColumnRowCountArray,每一列的宽度ColumnWidthArray,每一行的高度RowHeightArray和每一个Cell的颜色CellColorTable来组织。基于这个符号颜色结构表,可以在Shader中根据每一个像素的U-V值,从颜色表中取值来进行矢量线要素的填充。
根据每个像素的U-V值还能够确定其距离起始顶点的距离,利用这个距离和整个矢量线的长度相除,得到在U方向上的比例值。根据这个比例值,结合最大线宽和最小线宽,即可确定当前像素相应的宽度。利用公式w'=Width2+(Width1-Width2)*(MaxU–u')/MaxU能够计算出这个宽度。将这个公式映射到Shader程序中,用Scale1和Scale2分别表示最大宽度的缩放系数和最小宽的缩放系数,再依据同构的公式:S=Scale2+(Scale1-Scale2)*(MaxU–u')/MaxU计算得到当前像素的宽度缩放系数。如图3所示。
利用这个缩放系数,构建相反的扩张系数ExpansionFactor(EF),也就是EF=1/S。这样可以将原始的V值在垂直方向上进行拉伸,使得最终需要填充的范围仍然集中于0-1的范围,但是实际宽度发生了缩放。计算半扩张系数HalfExpansion(HE),HE=(EF-1)/2,这样可以使V值依据中央扩张。根据HE计算得到最后的V值:V(p)=v'*EF–HE;v'是原来的V值,V(p)是缩放后的V值。如图4(a)所示,经过这种拉伸-缩放的计算之后,V值被确定在当前线宽范围内。在Shader中,需要定义IsWidthScale变量来指定当前绘制模式是否是要进行渐变线宽的绘制;需要定义Scale1和Scale2来传递最大线宽参数和最小线宽参数。
本发明技术方案的具体说明如下:
A.首先遍历线要素中的每一个顶点,按照半个最大线宽向两边扩展,由此可以将一个线段扩展成一个矩形;利用矩形的四个顶点,组合生成相应的两个三角形;由一系列连续的线段可以生成连续的三角形集合。对于沿着线走向,往左边扩展出来的顶点,设定其V值为0;而往右边扩展出来的顶点,设定其V值为1。左右两边的扩展顶点的U值计算,是根据扩展顶点对应的线上的点与线的起始点计算长度,用长度除以最大线宽得到左右扩展顶点的U值。
B.对于需要沿线重复填充的符号单元,该符号首先从横向上被分为宽度一致的几列,对每一列再分为颜色一致的几行。不同列的宽度可以不同,但每一列中的每一行宽度相同;列中的不同行的颜色可以不同,但一行只能有一个颜色。由这些列-行(Column-Row)构成了一系列的单元(Cell)。每个Column被赋予宽度属性和行数属性,每个Row被赋予高度属性,每个Cell被赋予颜色值,整个符号颜色结构表被赋予总列数、总宽度和总高度属性。
C.通过GPU可编程流水线,将构造好的线三角网Mesh、需要绘制的符号颜色结构信息传递到Shader程序中。
D.在所设计的Shader程序中,根据三角网Mesh顶点上的U-V值,可以利用GPU内置的光栅化方法得到每个像素的u'值(即该像素在水平方向上到线起点的距离)和v'值(即该像素在垂直方向上到线的上边界的距离)。利用这个u'值,和相应的宽度渐变函数,计算得到新的U(p)值;这个U(p)值可能大于1,也可能小于0,在后续过程中只有0-1之间的像素才会被填充颜色,否则设置为透明色。
D.在所设计的Shader程序中,根据前面计算得到的U(p)值和v'值。利用这个U(p)值,首先去掉当前像素之前的所有符号,也就是将U值映射到单个符号的坐标系中;用公式U'(p)=U(p)-SL×[U(p)/SL],可以得到当前像素距离符号最左侧的距离U'(p);其中SL是符号的总宽度,[U(p)/SL]是对U(p)/SL的值进行取下整数。由此可以得到当前像素处于颜色结构表中具体哪一个Cell。
E.在GPU中用利用计算得到的Cell的颜色或者透明色对矢量线要素进行逐像素填充,得到最后的宽度渐变绘制结果。
实施例:
相比于传统计算机可视化领域中的直线绘制,由于地图符号的复杂性,地图矢量线要素的绘制更为困难;传统的用多条宽度不一的线来拟合渐宽线的绘制,难以满足地图绘制的要求,也造成了空间信息传递的丢失。所以本发明设计了一种基于GPUShader的宽度渐变线型地图符号绘制方法,来适应于不同地图符号的渐宽绘制。如图5,四种典型的宽度渐变线型地图符号和其应用于矢量线要素绘制的效果。
下面是用软件方法,在C++语言和OpenGL环境下,实现基于GPUShader的宽度渐变线型地图符号的绘制:
(1)定义结构体SymbolStructure表示符号结构:
#defineMAX_COL_NUM16//最多多少列
#defineMAX_ROW_NUM16//最多多少行
structCellColor{floatr;floatg;floatb;floata;}
structSymbolStructure
{
intuiUseColNum;//一共有多少列
floatufUseColWidth;//整个符号的宽度
intuiUseRowNum[MAX_COL_NUM];//每一列有多少行
floatufColWidth[MAX_COL_NUM];//每一列的宽度
intuiColType[MAX_COL_NUM];//每一列是否为背景列的标志
floatufRowHeight[MAX_COL_NUM][MAX_ROW_NUM];//每一行的高度
CellColoruf4CellColor1[MAX_COL_NUM][MAX_ROW_NUM];//颜色表
floatufMaxULength;//最大的U值
intuiUseScaleV;//是否进行沿线走向的渐宽绘制,0表示否,1表示是
floatufScaleV1;//最大线宽系数
floatufScaleV2;//最小线宽系数
}
(2)在Shader中定义一组变量用于传递符号颜色结构表信息:
#defineMAX_COL_NUM16//最多多少列
#defineMAX_ROW_NUM16//最多多少行
varyingfloatvfU;//由顶点U值传递过来的u'值
varyingfloatvfV;//由顶点U值传递过来的u'值
uniformintuiUseColNum;//一共有多少列
uniformfloatufUseColWidth;//整个符号的宽度
uniformintuiUseRowNum[MAX_COL_NUM];//每一列有多少行
uniformfloatufColWidth[MAX_COL_NUM];//每一列的宽度
uniformfloatufRowHeight[MAX_COL_NUM*MAX_ROW_NUM];//每一行的高度
uniformvec4uf4CellColor1[MAX_COL_NUM*MAX_ROW_NUM];//颜色表
uniformfloatufMaxULength;//最大的U值
uniformintuiUseScaleV;//是否进行沿线走向的渐宽绘制,0表示否,1表示是
uniformfloatufScaleV1;//最大线宽系数
uniformfloatufScaleV2;//最小线宽系数
(3)在Shader中定义函数getColByU和函数getRowByV获取当前所在Cell:voidgetColByU(floatu,outintcol,outfloatcolU){
对u除以整个符号的宽度值得到的结果进行取整;
获取当前像素在符号中的相对U值;
遍历符号颜色结构表中的每一列,判断U值是否在该列;
找到所在的列,返回结果;
}
voidgetRowByV(intcol,floatv,outintrow,outfloatrowV){
遍历符号颜色结构表中的每一行,判断当前像素所在的行;
找到所在的行,返回结果;
}
(4)在Shader中定义函数getCellColorByUV进行根据U-V取得到某一个Cell中颜色的计算:
vec4getCellColorByUV(floatu,floatv){
……
调用函数getColByU(u,col,colU)获取当前像素所在的列;
调用函数getRowByV(col,v,row,rowV)获取当前所在的行;
根据计算得到的行和列,得到当前像素在符号颜色结构表中的位置;
返回颜色结构表中该位置的颜色值;
}
(5)在Shader中定义函数getColorByUV进行宽度渐变函数的处理:
vec4getColorByUV(floatu,floatv){
……
判断当前线要素的绘制模式是否渐宽绘制;
如果不是渐宽绘制,直接调用getCellColorByUV(u,v)函数,并返回结果;
如果是渐宽绘制,首先获取最小缩放系数和最大缩放系数;
根据最大和最小缩放系数,利用传递到此函数的u值,计算当前的缩放系数;
对当前的缩放系数取倒数,得到反向的扩张系数;
按照半个扩张系数,对传递到此函数的v值进行扩张的到v';
如果v'大于1,则使其等于1;
如果v'小于0,则使其等于0;
调用getCellColorByUV(u,v')函数,并返回结果;
}
在确定像素颜色的Shadermain函数中,首先调用getColorByUV函数,在getColorByUV中利用宽度渐变函数,对原始V值进行拉伸-缩放调整,得到新的V值。将新的V值和传到getCellColorByUV中,再依次调用getColByU和getRowByV获取当前像素位于哪个Cell,用Cell的颜色值赋予当前像素。最终实现整个矢量线要素的渐宽绘制。
Claims (4)
1.基于GPU的宽度渐变线型地图符号绘制方法,其特征是,该方法包括下列步骤:
步骤1初始化需要绘制的线状要素的点集序列,根据最大线宽生成需要绘制的三角形几何三角网:确定需要绘制的渐变线宽的最大线宽和最小线宽参数,遍历线状要素中的每一个顶点,按照半个最大线宽向两边扩展,同时生成相应的三角形集合,并为每个三角形的每个顶点赋予沿线走向的长度值U值和垂直于线走向的长度值V值,即U-V值,最终得到最后一个顶点的U值作为整条线最大的U值MaxU;
步骤2确定需要沿线重复填充的符号单元的颜色结构表:将需要填充的符号单元按照纵向-横向的结构进行分解,用列优先的二维数组和相应的符号单元属性来结构化映射一个符号单元;
步骤3在着色器中根据宽度渐变函数对线状要素进行逐像素绘制:基于传递到着色器里面的顶点U-V值,动态确定每个像素的U-V值,即像素在水平方向上到线起点的距离u'值和像素在垂直方向上到线的上边界的距离v'值,在着色器中利用一个确定的宽度渐变函数,计算该像素所处位置的宽度,由此在宽度范围内填充颜色表中的相应颜色。
2.根据权利要求1所述的基于GPU的宽度渐变线型地图符号绘制方法,其特征是,所述步骤1中,将V值从0至最大线宽的范围内归一化到0至1的范围内,U值通过每个顶点距离起始点的距离除以最大线宽得到。
3.根据权利要求1所述的基于GPU的宽度渐变线型地图符号绘制方法,其特征是,所述步骤2中,
A.符号的颜色结构表:将符号单元按照其结构分解为几个列,每一列都包含其相应的行,每一行都包含其相应的四个角的颜色值,由此形成一系列的颜色单元来映射特定的符号;
B.颜色结构表的单元属性:对于一个符号单元的颜色结构表,其每一列都包含相应的宽度属性和所包含的行数属性,每一行都包含相应的高度属性,每一列都包含一个布尔值来指明该列是否为背景列,整个颜色结构表包含总列数、总宽度和总高度属性。
4.根据权利要求1所述的基于GPU的宽度渐变线型地图符号绘制方法,其特征是,所述步骤3中,
A.宽度渐变函数:根据当前像素所在位置的u'值和v'值,用u'值除以最大U值MaxU得到所占的比例,结合最大宽度和最小宽度属性,按照公式w'=Width2+(Width1-Width2)×(MaxU–u')/MaxU计算得到每个像素所在位置的宽度,其中w'表示当前宽度,Width2表示最小宽度,Width1表达最大宽度,MaxU表示最大U值;
B.根据U-V值获取在宽度范围内颜色的方法:首先根据当前像素的u'值,计算其在符号单元颜色结构表中的位置,利用公式U(p)=u'-SL×[u'/SL],其中U(p)表示在颜色结构表中的U值,SL表达符号的总宽度,[u'/SL]表示对u'/SL的结果进行取整得到小于u'值的SL的整数倍;接着根据当前像素的v'值,和计算得到的当前线宽w'值,利用公式V(p)=v'×EF–HE计算得到该像素相应的宽度范围,其中EF=1/w',HE=(EF-1)/2;通过U(p)和V(p)的值到颜色结构表中遍历每一列的宽度和每一行的高度来确定最终需要填充的颜色,如果V(p)值在0和1之间,则按照遍历得到的列-行索引值确定填充颜色;如果V(p)值小于0或者大于1,则填充透明色,由此绘制出宽度渐变的线要素。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610015703.0A CN105513110A (zh) | 2016-01-11 | 2016-01-11 | 基于gpu的宽度渐变线型地图符号绘制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610015703.0A CN105513110A (zh) | 2016-01-11 | 2016-01-11 | 基于gpu的宽度渐变线型地图符号绘制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105513110A true CN105513110A (zh) | 2016-04-20 |
Family
ID=55721066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610015703.0A Pending CN105513110A (zh) | 2016-01-11 | 2016-01-11 | 基于gpu的宽度渐变线型地图符号绘制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105513110A (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106227709A (zh) * | 2016-07-14 | 2016-12-14 | 北京小米移动软件有限公司 | 细线绘制方法、装置及终端 |
CN111028353A (zh) * | 2019-12-26 | 2020-04-17 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号燕尾形箭头绘制方法 |
CN111028352A (zh) * | 2019-12-26 | 2020-04-17 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号开放尖角形箭头绘制方法 |
CN111028351A (zh) * | 2019-12-26 | 2020-04-17 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号半尖角形箭头绘制方法 |
CN111080744A (zh) * | 2019-12-26 | 2020-04-28 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号半开放尖角形箭头绘制方法 |
CN111105477A (zh) * | 2019-11-25 | 2020-05-05 | 航天科技控股集团股份有限公司 | 全液晶仪表2d虚拟指针绘制方法 |
CN111127589A (zh) * | 2019-12-26 | 2020-05-08 | 南京师范大学 | 顾及线宽一致性的矢量地图圆形虚线符号绘制方法 |
CN111127297A (zh) * | 2019-12-26 | 2020-05-08 | 南京师范大学 | 顾及线宽一致性的矢量地图实线符号绘制方法 |
CN111145299A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图实线符号拐角绘制方法 |
CN111145301A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图实线符号端头绘制方法 |
CN111145298A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图栅栏虚线符号绘制方法 |
CN111145296A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号圆形箭头绘制方法 |
CN111145297A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号钻石形箭头绘制方法 |
CN111145300A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图尖角形虚线符号绘制方法 |
CN111145302A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图方形虚线符号绘制方法 |
CN111145303A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号尖角形箭头绘制方法 |
CN111145295A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号半燕尾形箭头绘制方法 |
CN111324403A (zh) * | 2020-01-17 | 2020-06-23 | 中国人民解放军战略支援部队信息工程大学 | 一种静态关系网关系边的可视化方法与装置 |
CN111489411A (zh) * | 2019-01-29 | 2020-08-04 | 北京百度网讯科技有限公司 | 线条绘制方法、装置、图像处理器、显卡及车辆 |
CN114359433A (zh) * | 2022-01-11 | 2022-04-15 | 红有软件股份有限公司 | 一种绘制渐变色线条的方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6377260B1 (en) * | 2000-01-24 | 2002-04-23 | The United States Of America As Represented By The National Security Agency | Method of displaying real and imaginary components of a waveform |
CN101159065A (zh) * | 2007-11-08 | 2008-04-09 | 武汉大学 | 复杂地图符号的计算机自动绘制方法 |
CN101783022A (zh) * | 2010-02-03 | 2010-07-21 | 南京师范大学 | 基于画家算法的道路网整体符号化方法 |
CN102368335A (zh) * | 2011-11-01 | 2012-03-07 | 深圳市五巨科技有限公司 | 一种改进的用广告板技术绘制场景模型的方法 |
CN102509325A (zh) * | 2011-11-07 | 2012-06-20 | 哈尔滨工程大学 | 一种针对复杂线状符号图案单元的绘制方法 |
CN103268626A (zh) * | 2013-04-11 | 2013-08-28 | 江苏省在这里数字科技有限公司 | 基于gpu的地图线形符号绘制方法及系统 |
-
2016
- 2016-01-11 CN CN201610015703.0A patent/CN105513110A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6377260B1 (en) * | 2000-01-24 | 2002-04-23 | The United States Of America As Represented By The National Security Agency | Method of displaying real and imaginary components of a waveform |
CN101159065A (zh) * | 2007-11-08 | 2008-04-09 | 武汉大学 | 复杂地图符号的计算机自动绘制方法 |
CN101783022A (zh) * | 2010-02-03 | 2010-07-21 | 南京师范大学 | 基于画家算法的道路网整体符号化方法 |
CN102368335A (zh) * | 2011-11-01 | 2012-03-07 | 深圳市五巨科技有限公司 | 一种改进的用广告板技术绘制场景模型的方法 |
CN102509325A (zh) * | 2011-11-07 | 2012-06-20 | 哈尔滨工程大学 | 一种针对复杂线状符号图案单元的绘制方法 |
CN103268626A (zh) * | 2013-04-11 | 2013-08-28 | 江苏省在这里数字科技有限公司 | 基于gpu的地图线形符号绘制方法及系统 |
Non-Patent Citations (3)
Title |
---|
SONGSHAN YUE 等: "A function-based linear map symbol building and rendering method using shader language", 《INTERNATIONAL JOURNAL OF GEOGRAPHICAL INFORMATION SCIENCE》 * |
曾丽婷 等: "渐变式河流制图符号的设计与开发", 《第五届全国几何设计与计算学术会议》 * |
颜倚天: "AutoCAD中渐宽线的实现方法", 《城市勘测》 * |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106227709B (zh) * | 2016-07-14 | 2019-03-29 | 北京小米移动软件有限公司 | 细线绘制方法、装置及终端 |
CN106227709A (zh) * | 2016-07-14 | 2016-12-14 | 北京小米移动软件有限公司 | 细线绘制方法、装置及终端 |
CN111489411A (zh) * | 2019-01-29 | 2020-08-04 | 北京百度网讯科技有限公司 | 线条绘制方法、装置、图像处理器、显卡及车辆 |
CN111105477A (zh) * | 2019-11-25 | 2020-05-05 | 航天科技控股集团股份有限公司 | 全液晶仪表2d虚拟指针绘制方法 |
CN111145296A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号圆形箭头绘制方法 |
CN111145302A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图方形虚线符号绘制方法 |
CN111028351A (zh) * | 2019-12-26 | 2020-04-17 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号半尖角形箭头绘制方法 |
CN111127589A (zh) * | 2019-12-26 | 2020-05-08 | 南京师范大学 | 顾及线宽一致性的矢量地图圆形虚线符号绘制方法 |
CN111127297A (zh) * | 2019-12-26 | 2020-05-08 | 南京师范大学 | 顾及线宽一致性的矢量地图实线符号绘制方法 |
CN111145299A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图实线符号拐角绘制方法 |
CN111145301A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图实线符号端头绘制方法 |
CN111145298A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图栅栏虚线符号绘制方法 |
CN111028352A (zh) * | 2019-12-26 | 2020-04-17 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号开放尖角形箭头绘制方法 |
CN111145297A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号钻石形箭头绘制方法 |
CN111145300A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图尖角形虚线符号绘制方法 |
CN111080744A (zh) * | 2019-12-26 | 2020-04-28 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号半开放尖角形箭头绘制方法 |
CN111145303A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号尖角形箭头绘制方法 |
CN111145295A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号半燕尾形箭头绘制方法 |
CN111145299B (zh) * | 2019-12-26 | 2023-08-22 | 南京师范大学 | 顾及线宽一致性的矢量地图实线符号拐角绘制方法 |
CN111028353A (zh) * | 2019-12-26 | 2020-04-17 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号燕尾形箭头绘制方法 |
CN111145301B (zh) * | 2019-12-26 | 2023-08-22 | 南京师范大学 | 顾及线宽一致性的矢量地图实线符号端头绘制方法 |
CN111127297B (zh) * | 2019-12-26 | 2023-08-22 | 南京师范大学 | 顾及线宽一致性的矢量地图实线符号绘制方法 |
CN111145302B (zh) * | 2019-12-26 | 2023-08-22 | 南京师范大学 | 顾及线宽一致性的矢量地图方形虚线符号绘制方法 |
CN111324403A (zh) * | 2020-01-17 | 2020-06-23 | 中国人民解放军战略支援部队信息工程大学 | 一种静态关系网关系边的可视化方法与装置 |
CN111324403B (zh) * | 2020-01-17 | 2024-02-27 | 中国人民解放军战略支援部队信息工程大学 | 一种静态关系网关系边的可视化方法与装置 |
CN114359433A (zh) * | 2022-01-11 | 2022-04-15 | 红有软件股份有限公司 | 一种绘制渐变色线条的方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105513110A (zh) | 基于gpu的宽度渐变线型地图符号绘制方法 | |
CN105701759A (zh) | 基于gpu的地图矢量线要素拐角合理性绘制方法 | |
CN105719230A (zh) | 基于gpu的颜色渐变线型地图符号绘制方法 | |
CN105701855B (zh) | 基于符号结构的线型地图符号反走样绘制方法 | |
CN104778755B (zh) | 一种基于区域划分的纹理图像三维重构方法 | |
CN101751682B (zh) | 一种通用地图的制备方法 | |
EP2887305B1 (en) | Resizing an image | |
CN101604453A (zh) | 基于分块策略的大规模数据场体绘制方法 | |
CN103810729B (zh) | 一种基于等高线的光栅图像矢量化方法 | |
DE202012013465U1 (de) | Wiedergabe eines textbildes entlang einer linie | |
DE102014007914A1 (de) | Graphisches Darstellen von Straßen und Routen unter Benutzung von Hardware-Tesselierung | |
CN104851133A (zh) | 一种图像自适应网格生成变分方法 | |
US9542724B1 (en) | Systems and methods for stroke rendering on digital maps | |
CN110554871B (zh) | NinePatch图形描绘方法及装置、计算机可读存储介质 | |
CN105096361A (zh) | 用于处理字符串以在人/机界面上进行图形表示的技术 | |
CN113126944B (zh) | 深度图的显示方法、显示装置、电子设备及存储介质 | |
CN111145298B (zh) | 顾及线宽一致性的矢量地图栅栏虚线符号绘制方法 | |
CN106408627B (zh) | 一种线状符号绘制方法 | |
CN109087391A (zh) | 一种三维场景下的军标标绘方法 | |
CN115761166A (zh) | 基于矢量瓦片的地图构建方法及其应用 | |
CN103761744B (zh) | 通用型二维点云分组方法 | |
CN111145301B (zh) | 顾及线宽一致性的矢量地图实线符号端头绘制方法 | |
CN111145302B (zh) | 顾及线宽一致性的矢量地图方形虚线符号绘制方法 | |
CN111127297B (zh) | 顾及线宽一致性的矢量地图实线符号绘制方法 | |
Oliveira et al. | Incremental texture mapping for autonomous driving |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160420 |