本发明专利技术提供了一种粗线生成方法及装置,上述方法包括以下处理:步骤一,预先生成线宽增量表,其中,宽度增量表中包含线宽预定时四个斜率区间对应的线宽增量;步骤二,根据粗线端点的坐标值通过快速移位比较确定粗线的斜率区间;步骤三,根据在步骤二中得到的斜率区间和线宽,在宽度增量表中查找相应的线宽增量,将线宽和线宽增量相加得到扫描线长度L;步骤四,用“两点-对称”画线算法每次计算生成一个点时,以当前点为中点扫描出一条水平或垂直的线,对称扫描,扫描行程为扫描线长度L的一半;步骤五,绘制线帽。通过本发明专利技术,实现了运算量小且连接效果好的粗线快速生成方案,提高了图形系统的效率。
【技术实现步骤摘要】
本专利技术涉及计算机图形学领域、GDI(Graphics Device Interface,图形设备接口)基础图形生成算法,尤其涉及一种粗线生成方法及装置,其能够快速生成粗线,尤其适用于例如嵌入式地理信息系统、导航系统中地理图形的快速描画。
技术介绍
本专利技术来源于“LBS(Location Based Service,基于位置的服务)软件平台”项目,可以通过无线定位技术和GIS(GeographicInformation System,地理信息系统)技术的结合,通过嵌入式用户终端(手机等)的图形显示系统来告诉用户需要的地理位置图形信息。在显示基于目标地理位置的信息时,需要频繁地调用基础图形生成算法来进行地理图形描画,因此,高效的图形描画算法,即计算机图形学基础算法研究是该软件平台研究的关键之一。市场上的嵌入GIS设备几乎都存在地理图形描画速度慢的问题,快速高效的图形生成算法无疑会极大地改善地理信息服务的系统性能和效率,提高用户满意度和产品竞争力。在地理图形描画过程中,经常需要画宽度大于一个像素的短粗线条,来表示道路、标志、轮廓、建筑、河流等。常用的粗线画法为了达到精细描画,使用了较多的运算量来计算粗线的轮廓多边形然后再采用多边形填充算法,其中需要相当多的浮点乘、除、平方、开方、取整运算,在图形工作站或PC系统中由于系统主频高、有硬件浮点处理器、GPU支持,并且一般的应用并不需要频繁画大量的粗线等原因,通常会体现出较快的描画速度。而在嵌入式图形系统中频繁地描画大量的细线、粗线组成的地理图形时,在中高档图形系统中的硬件配置条件都不存在了,因此也就无法实现较快的描画速度。为了解决上述问题,需要根据嵌入系统硬件配置的特点来设计粗直线的高速生成方法,然而目前尚未实现此种生成方法。虽然计算机图形学基础算法的研究已经有40余年的历史,其发展已经相当成熟,很难再做出创新性的成果,但是基础算法的微小进步就会可观的改善图形系统效率。研究、改善和优化基础图形生成算法有着很重要的意义。
技术实现思路
考虑到现有技术中存在的上述问题而提出本专利技术,为此,本专利技术旨在提供一种粗线生成方法及装置,其能够实现快速填充、减少浮点运算和取整运算,从而快速生成粗线,并能够对绘制地图轮廓时的应用特点做一些实用的工程化处理。根据本专利技术,提供了一种粗线生成方法。该粗线生成方法包括步骤一,预先生成线宽增量表,其中,宽度增量表中包含线宽预定时四个斜率区间对应的线宽增量;步骤二,根据粗线端点的坐标值通过快速移位比较确定粗线的斜率区间;步骤三,根据在步骤二中得到的斜率区间和线宽,在宽度增量表中查找相应的线宽增量,将线宽和线宽增量相加得到扫描线长度L;步骤四,用“两点-对称”画线算法每次计算生成一个点时,以当前点为中点扫描出一条水平或垂直的线,对称扫描,扫描行程为扫描线长度L的一半;步骤五,绘制线帽。其中,在步骤一中,根据斜率的中值来计算宽度增量。具体地,根据等误差中值来计算宽度增量,其中,等误差中值为按斜率值取得的斜率区间正中间时的斜率值。根据等概率中值来计算宽度增量,其中,等概率中值为按等角取得的斜率区间正中间时的斜率值。另外,在生成线宽增量表时,每隔4个像素进行一次线宽增量计算。上述的四个斜率区间为(0,1/4)、(1/4,1/2)、(1/2,3/4)、(3/4,1),并且线宽增量表中进一步包括与四个斜率区间对应的SLOPE值。相应地,在步骤三中,根据确定的斜率区间在线宽增量表中查找其对应的SLOPE值,然后,根据线宽的四分之一的值和查找的SLOPE值,从线宽增量表中查找对应的线宽增量。在步骤四中,从扫描线的两头同时开始画线,一次画两个点,经过L/2次画出整条扫描线。而在步骤五中,在绘制线帽时,一次画四个点。此外,在绘制线帽时,当粗线斜率的绝对值小于1时,生成粗线的左线帽和右线帽,当粗线斜率的绝对值大于1时,生成粗线的上线帽和下线帽。根据本专利技术,还提供了一种粗线生成装置。该装置包括线宽增量表生成模块,用于生成线宽增量表,其中,宽度增量表中包含线宽预定时四个斜率区间对应的线宽增量;斜率区间确定模块,用于根据粗线端点的坐标值通过快速移位比较确定粗线的斜率区间;扫描线长度确定模块,用于根据斜率区间确定模块确定的斜率区间和线宽,在宽度增量表中查找相应的线宽增量,将线宽和线宽增量相加得到扫描线长度L;画线模块,用于用“两点-对称”画线算法每次计算生成一个点时,以当前点为中点扫描出一条水平或垂直的线,对称扫描,扫描行程为扫描线长度L的一半;线帽绘制模块,用于绘制线帽。其中,线宽增量表生成模块根据斜率的中值来计算宽度增量,并且在生成线宽增量表时,每隔4个像素进行一次线宽增量计算。另外,扫描线长度确定模块根据斜率区间确定模块确定的斜率区间在线宽增量表中查找其对应的SLOPE值,然后,根据线宽的四分之一的值和查找的SLOPE值,从线宽增量表中查找对应的线宽增量。画线模块从扫描线的两头同时开始画线,一次画两个点,经过L/2次画出整条扫描线。线帽绘制模块在绘制线帽时,当粗线斜率的绝对值小于1时,生成粗线的左线帽和右线帽,当粗线斜率的绝对值大于1时,生成粗线的上线帽和下线帽。通过本专利技术,提供了一种运算量小且连接效果好的粗线快速生成方案,通过应用本专利技术可以提高图形系统的效率。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。附图说明附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实施例一起用于解释本专利技术,并不构成对本专利技术的限制。在附图中图1为点变扫描线法(常用的粗线生成算法一般都未采用该方法)画粗线效果图; 图2为典型的扫描线长计算方法的示意图;图3为根据本专利技术实施例的粗线生成方法的流程图;图4为根据本专利技术实施例的线帽描图步骤的示意图;图5为根据本专利技术装置实施例的粗线生成装置的框图;图6示出了线帽的连接效果图;图7示出了使用本专利技术画粗线生成多边形时的效果图;以及图8示出了本专利技术的线帽描画方法的缺陷。具体实施例方式本专利技术实施例提供了一种粗线生成方法和装置,其能够快速生成连接效果较好的粗线,属于嵌入式地理信息服务设备基础图形生成算法研究的一部分。以下结合附图对本专利技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。方法实施例根据本专利技术实施例,提供了一种粗线生成方法,其使用“两点-对称”直线生成算法生成粗线的轴心,不需要计算粗线轮廓,直接用与线宽相当的扫描线画出(扫描线的长度通过查表增量算法得出),达到了相当快的生成速度。在整个粗线生成过程中,仅用到了整型数的加、减、移位和内存查表运算,运算量非常小。该方法还解决了在粗线绘制过程中存在的折线接头处线帽连接处理的问题,提出了一种新颖的线帽画法,不仅运算量小,而且达到了比较好的连接效果。首先,图1为点变扫描线法(常用的粗线生成算法一般都未采用该方法)画粗线效果图。它是在两点-对称Bresenham直线生成算法的基础上,每生成一个点,就把画点操作用画竖直(粗线斜率小于1)或水平(粗线斜率大于1)扫描线操作替代,本文档来自技高网...
【技术保护点】
一种粗线生成方法,其特征在于,包括:步骤一,预先生成线宽增量表,其中,所述宽度增量表中包含线宽预定时四个斜率区间对应的线宽增量;步骤二,根据粗线端点的坐标值通过快速移位比较确定粗线的斜率区间;步骤三,根据在所述步骤二中得到的斜率区间和线宽,在所述宽度增量表中查找相应的线宽增量,将线宽和线宽增量相加得到扫描线长度L;步骤四,用“两点-对称”画线算法每次计算生成一个点时,以当前点为中点扫描出一条水平或垂直的线,对称扫描,扫描行程为所述扫描线长度L的一半;以及步骤五,绘制线帽。
【技术特征摘要】
【专利技术属性】
技术研发人员:党茂昌,
申请(专利权)人:中兴通讯股份有限公司,
类型:发明
国别省市:94[中国|深圳]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。