法律状态公告日
法律状态信息
法律状态
2022-09-02
实质审查的生效 IPC(主分类):G06T11/20 专利申请号:2022105011172 申请日:20220510
实质审查的生效
技术领域
本发明涉及图形显示技术领域,具体而言涉及一种面向平显的多线宽线段无失真绘制方法。
背景技术
线段是组成计算机图形最基本的元素之一,在很多显示系统中需要绘制任意线宽的线段。常见的多线宽线段的绘制方法采取的是DDA算法、Bresenham算法、Wu反走样算法。这些方法实现简单方便,但是斜线段存在呈现方式为菱形而不是矩形的现象,而且这些算法均不支持起点、终点为浮点数的情况。如何快速简单的绘制无失真多线宽线段成为重要的研究内容。
发明内容
本发明针对现有技术中的不足,提供一种面向平显的多线宽线段无失真绘制方法,能够解决绘制多线宽斜线段存在呈现方式为菱形的问题,适用于端点为浮点数的任意线宽线段的无失真绘制方法,对硬件要求低。
为实现上述目的,本发明采用以下技术方案:
一种面向平显的多线宽线段无失真绘制方法,所述绘制方法包括以下步骤:
S1,根据线段的斜率选择主轴,确定线段四边和扫描窗口;
S2,在确定的扫描窗口内逐个像素点扫描,采用均匀分布的网格算法,每个像素点产生n个采样点,通过穿过采样点的横向扫描线或者纵向扫描线与线段四边的交点判断采样点是否在线段内部,将采样点在线段内部的个数记为mask,再对像素中心点进行插值得到颜色信息,根据mask的数值计算出每个像素点透明度的权重weight=mask/n,根据多采样点计算透明度的权重,根据插值得到的颜色信息给像素点的RGB进行赋值,结合透明度的权重实现反走样效果,完成无失真多线宽线段的绘制。
为优化上述技术方案,采取的具体措施还包括:
进一步地,步骤S1中,根据线段的斜率选择主轴,确定线段四边和扫描窗口的过程包括以下步骤:
S11,令线段的起点和终点坐标分别为P
S12,根据线段P
S13,计算得到扫描窗口的区域起始坐标设置为
进一步地,步骤S2中,通过穿过采样点的横向扫描线或者纵向扫描线与线段四边的交点判断采样点是否在线段内部的过程包括以下步骤:
S201,记待绘制的矩形为P
S202,选取任意一个采样点P
S203,通过比较y
进一步地,步骤S203中,采样点P
进一步地,步骤S2中,对像素中心点进行插值得到颜色信息的过程包括以下步骤:
S211,记任意一个像素点(x
S212,根据下述公式计算得到:
S213,记起点P
本发明的有益效果是:
第一,本发明的面向平显的多线宽线段无失真绘制方法,可以实现任意线宽线段的无失真绘制,支持端点为浮点数的线段的绘制,显示效果好,实用性强。
第二,本发明的面向平显的多线宽线段无失真绘制方法,解决了多线宽斜线段呈现方式为菱形而不是矩形的问题,优化了显示效果,更贴合图形的实际呈现方式。
第三,本发明的面向平显的多线宽线段无失真绘制方法,在绘制多线宽线段时不会产生重复的绘制点,减少缓存空间的占用,增强图形处理能力。
附图说明
图1为判断采样点是否在多线宽线段内部的原理示意图;
图2为矩形四条边解析式的计算原理示意图;
图3为像素点属性的计算原理示意图;
图4是分别采用Wu反走样算法和本发明方法绘制的不同线宽、斜率多线宽线段仿真显示效果图;其中,图4(a)为不同线宽、斜率多线宽线段Wu反走样算法绘制仿真显示效果图;图4(b)为本发明方法的不同线宽、斜率多线宽线段绘制仿真显示效果图。
具体实施方式
现在结合附图对本发明作进一步详细的说明。
需要注意的是,发明中所引用的如“上”、“下”、“左”、“右”、“前”、“后”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
本发明的思路是对现有基于多重采样原理的反走样绘制方法进行改进,根据斜率选择主轴,通过横/纵向扫描线与线段四边的交点判断采样点是否在线段内部,再对像素中心点进行插值得到颜色信息,根据多采样点计算透明度的权重实现反走样,绘制出无失真的多线宽线段。
图1为判断采样点是否在多线宽线段内部的示意图。线段的起点和终点坐标分别为P
图2为矩形四条边解析式的计算示意图。
步骤1:线段P
步骤2:L
步骤3:将采样点P
图3为像素点属性的计算示意图,每个像素点的属性由该像素点的像素中心点与起点和终点的插值得到。记某个像素点坐标为(x
本实施例预设了几组不同线宽和不同斜率的多线宽绘制参数,图4(a)为Wu反走样算法绘制的不同线宽、斜率多线宽线段仿真显示效果图,图4(b)为采用本发明方法绘制的不同线宽、斜率多线宽线段绘制仿真显示效果图;最上方的图片是线段端点放大图。可以发现,Wu反走样算法是通过在线段的正上方和正下方而不是在垂直于线段的方向上添加透明度不为1的像素点来实现线段的反走样效果,对于斜率不为0的线段,若其采用的反走样算法为Wu反走样算法,那么线段最后的显示效果会呈菱形的状态而不是矩形,而且在线段的端点处也不会施加到反走样效果。另外对于端点为浮点数的线段,Wu反走样算法会对浮点部分进行取整操作,使得实际的显示位置与理论的显示位置产生差异。本发明方法采用多重采样算法并通过线段四边的函数解析式判断采样点是否在线段内部,这样的方式就不需要对浮点数端点作取整操作,确定出像素点透明度的权重,这样不会出现线段呈现方式为菱形的问题,也解决了端点处无反走样效果的问题。通过下图的对比可以更直观地观察到本发明方法带来的优化效果。
通过对比可以看出,本发明方法的显示效果比Wu反走样算法绘制的显示效果更好,解决了斜线段以菱形方式呈现的问题,起点与终点处均作了反走样的处理,允许输入端点为浮点数的情况,绘制方法更具有广泛性。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
机译: 在具有延伸的线段的线造纸机和具有延伸的线段的造纸机线段的情况下用于绘制屏幕的方法
机译: 是通过线宽均匀性评价方法对印刷的线段中的线宽均匀性进行评价的方式
机译: 用于绘制字符的方法和设备,该字符和方法基于近似点绘制曲线段