一种面向平显的多线宽线段无失真绘制方法

文档序号:31163529发布日期:2022-08-17 08:18阅读:74来源:国知局
一种面向平显的多线宽线段无失真绘制方法

1.本发明涉及图形显示技术领域,具体而言涉及一种面向平显的多线宽线段无失真绘制方法。


背景技术:

2.线段是组成计算机图形最基本的元素之一,在很多显示系统中需要绘制任意线宽的线段。常见的多线宽线段的绘制方法采取的是dda算法、bresenham算法、wu反走样算法。这些方法实现简单方便,但是斜线段存在呈现方式为菱形而不是矩形的现象,而且这些算法均不支持起点、终点为浮点数的情况。如何快速简单的绘制无失真多线宽线段成为重要的研究内容。


技术实现要素:

3.本发明针对现有技术中的不足,提供一种面向平显的多线宽线段无失真绘制方法,能够解决绘制多线宽斜线段存在呈现方式为菱形的问题,适用于端点为浮点数的任意线宽线段的无失真绘制方法,对硬件要求低。
4.为实现上述目的,本发明采用以下技术方案:
5.一种面向平显的多线宽线段无失真绘制方法,所述绘制方法包括以下步骤:
6.s1,根据线段的斜率选择主轴,确定线段四边和扫描窗口;
7.s2,在确定的扫描窗口内逐个像素点扫描,采用均匀分布的网格算法,每个像素点产生n个采样点,通过穿过采样点的横向扫描线或者纵向扫描线与线段四边的交点判断采样点是否在线段内部,将采样点在线段内部的个数记为mask,再对像素中心点进行插值得到颜色信息,根据mask的数值计算出每个像素点透明度的权重weight=mask/n,根据多采样点计算透明度的权重,根据插值得到的颜色信息给像素点的rgb进行赋值,结合透明度的权重实现反走样效果,完成无失真多线宽线段的绘制。
8.为优化上述技术方案,采取的具体措施还包括:
9.进一步地,步骤s1中,根据线段的斜率选择主轴,确定线段四边和扫描窗口的过程包括以下步骤:
10.s11,令线段的起点和终点坐标分别为p0(x0,y0),p1(x1,y1),并且p0在p1左侧;
11.s12,根据线段p0p1的斜率选取主轴,线宽为w,线段四边分别为l1、l2、l3、l4,l3、l4与p0p1垂直,l1、l2与p0p1平行;l1的解析式为y=k(x-x0)+y0+b;l2的解析式为y=k(x-x0)+y
0-b;l3的解析式为y=k

(x-x0)+y0;l4的解析式为y=k

(x-x1)+y1;
12.s13,计算得到扫描窗口的区域起始坐标设置为
扫描窗口的区域结束坐标设置为表示向下取整,表示向上取整。
13.进一步地,步骤s2中,通过穿过采样点的横向扫描线或者纵向扫描线与线段四边的交点判断采样点是否在线段内部的过程包括以下步骤:
14.s201,记待绘制的矩形为p0′
p1′
p2′
p3′

15.s202,选取任意一个采样点p
si
(x
si
,y
si
),其对应的纵向扫描线x=x
si
与l1、l2、l3、l4的交点分别为p
l1
、p
l2
、p
l3
、p
l4
,点p
l1
的纵坐标y
l1
=k(x
si-x0)+y0+b,点p
l2
的纵坐标y
l2
=k(x
si-x0)+y
0-b,点p
l3
的纵坐标y
l3
=k

(x
si-x0)+y0,点p
l4
的纵坐标y
l4
=k

(x
si-x1)+y1;
16.s203,通过比较y
si
与纵向扫描线x=x
si
与矩形的四条边界l1、l2、l3、l4的交点p
l1
、p
l2
、p
l3
、p
l4
的纵坐标的大小来判断采样点是否在矩形内部。
17.进一步地,步骤s203中,采样点p
si
在线段内部的条件为y
si
≥y
l2 and y
si
≥y
l3 and y
si
≤y
l1 and y
si
≤y
l4

18.进一步地,步骤s2中,对像素中心点进行插值得到颜色信息的过程包括以下步骤:
19.s211,记任意一个像素点(xs,ys)对应的像素中心点p的坐标为(xs+0.5,ys+0.5),记pp0在p0p1上的投影与p0p1的比值为t,pp0与p0p1之间的夹角为θ;
20.s212,根据下述公式计算得到:简化后得
21.s213,记起点p0的属性为f0,终点p1的属性为f1,则该像素点的属性f由插值计算得到:f=(1-t)
·
f0+t
·
f1。
22.本发明的有益效果是:
23.第一,本发明的面向平显的多线宽线段无失真绘制方法,可以实现任意线宽线段的无失真绘制,支持端点为浮点数的线段的绘制,显示效果好,实用性强。
24.第二,本发明的面向平显的多线宽线段无失真绘制方法,解决了多线宽斜线段呈现方式为菱形而不是矩形的问题,优化了显示效果,更贴合图形的实际呈现方式。
25.第三,本发明的面向平显的多线宽线段无失真绘制方法,在绘制多线宽线段时不会产生重复的绘制点,减少缓存空间的占用,增强图形处理能力。
附图说明
26.图1为判断采样点是否在多线宽线段内部的原理示意图;
27.图2为矩形四条边解析式的计算原理示意图;
28.图3为像素点属性的计算原理示意图;
29.图4是分别采用wu反走样算法和本发明方法绘制的不同线宽、斜率多线宽线段仿真显示效果图;其中,图4(a)为不同线宽、斜率多线宽线段wu反走样算法绘制仿真显示效果图;图4(b)为本发明方法的不同线宽、斜率多线宽线段绘制仿真显示效果图。
具体实施方式
30.现在结合附图对本发明作进一步详细的说明。
31.需要注意的是,发明中所引用的如“上”、“下”、“左”、“右”、“前”、“后”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
32.本发明的思路是对现有基于多重采样原理的反走样绘制方法进行改进,根据斜率选择主轴,通过横/纵向扫描线与线段四边的交点判断采样点是否在线段内部,再对像素中心点进行插值得到颜色信息,根据多采样点计算透明度的权重实现反走样,绘制出无失真的多线宽线段。
33.图1为判断采样点是否在多线宽线段内部的示意图。线段的起点和终点坐标分别为p0(x0,y0),p1(x1,y1),并且p0在p1左侧。根据斜率选取主轴,线宽为w。实际需要绘制的矩形记作p0′
p1′
p2′
p3′
,记某个采样点坐标为p
si
(x
si
,y
si
),通过比较y
si
与纵向扫描线x=x
si
与矩形的四条边界l1、l2、l3、l4l4的交点p
l1
、p
l2
、p
l3
、p
l4
的纵坐标的大小来判断采样点是否在矩形内部,得到采样点在矩形内部的比例weight。
34.图2为矩形四条边解析式的计算示意图。
35.步骤1:线段p0p1的斜率为l3、l4与p0p1垂直,记l3、l4的斜率为k

,那么l3经过点p0,所以l3的解析式为y=k

(x-x0)+y0。l4经过点p1,所以l4的解析式为y=k

(x-x1)+y1。纵向扫描线x=x
si
与l3、l4的交点为p
l3
、p
l4
,由此得点p
l3
的纵坐标y
l3
=k

(x
si-x0)+y0,点p
l4
的纵坐标y
l4
=k

(x
si-x1)+y1。
36.步骤2:l1、l2与线段p0p1平行,斜率为k。通过三角形的相似性计算出l1、l2相对于线段p0p1的截距差b。由三角形的相似性得计算得到由此得l1的解析式为y=k(x-x0)+y0+b,l2的解析式为y=k(x-x0)+y
0-b。纵向扫描线x=x
si
与l1、l2的交点为p
l1
、p
l2
,由此得点p
l1
的纵坐标y
l1
=k(x
si-x0)+y0+b,点p
l2
的纵坐标y
l2
=k(x
si-x0)+y
0-b。
37.步骤3:将采样点p
si
(x
si
,y
si
)的纵坐标y
si
与计算得出的y
l1
、y
l2
、y
l3
、y
l4
的大小进行比较,采样点p
si
在线段内部的条件为y
si
≥y
l2 and y
si
≥y
l3 and y
si
≤y
l1 and y
si
≤y
l4
,由此计算出采样点在线段内部的比例weight,weight即为像素点的透明度大小,从而使边缘的点更暗,达到反走样的效果。
38.图3为像素点属性的计算示意图,每个像素点的属性由该像素点的像素中心点与起点和终点的插值得到。记某个像素点坐标为(xs,ys),则其像素中心点p的坐标为(xs+0.5,ys+0.5)。记pp0在p0p1上的投影与p0p1的比值为t,pp0与p0p1之间的夹角为θ,则之间的夹角为θ,则简化后得记起点p0的属性为f0,终点p1的属性为f1,则该像素点的属性f由插值计算可得f=(1-t)
·
f0+t
·
f1。
39.本实施例预设了几组不同线宽和不同斜率的多线宽绘制参数,图4(a)为wu反走样算法绘制的不同线宽、斜率多线宽线段仿真显示效果图,图4(b)为采用本发明方法绘制的不同线宽、斜率多线宽线段绘制仿真显示效果图;最上方的图片是线段端点放大图。可以发现,wu反走样算法是通过在线段的正上方和正下方而不是在垂直于线段的方向上添加透明
度不为1的像素点来实现线段的反走样效果,对于斜率不为0的线段,若其采用的反走样算法为wu反走样算法,那么线段最后的显示效果会呈菱形的状态而不是矩形,而且在线段的端点处也不会施加到反走样效果。另外对于端点为浮点数的线段,wu反走样算法会对浮点部分进行取整操作,使得实际的显示位置与理论的显示位置产生差异。本发明方法采用多重采样算法并通过线段四边的函数解析式判断采样点是否在线段内部,这样的方式就不需要对浮点数端点作取整操作,确定出像素点透明度的权重,这样不会出现线段呈现方式为菱形的问题,也解决了端点处无反走样效果的问题。通过下图的对比可以更直观地观察到本发明方法带来的优化效果。
40.通过对比可以看出,本发明方法的显示效果比wu反走样算法绘制的显示效果更好,解决了斜线段以菱形方式呈现的问题,起点与终点处均作了反走样的处理,允许输入端点为浮点数的情况,绘制方法更具有广泛性。
41.以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1