一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

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

2022-06-08 14:41:26 来源:中国专利 TAG:


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


背景技术:

2.圆是组成计算机图形最基本的元素之一,在很多显示系统中需要绘制任意线宽任意半径的圆。常见的多线宽圆的绘制方法采取的是通过bresenham算法确定1/8圆的轮廓再根据对称性确定整圆的轮廓,采用多重采样算法给圆施加反走样效果。这个方法实现简单方便且快速,但是得到的反走样效果较差且动态显示效果会出现撕裂问题。如何快速简单的绘制无失真多线宽圆成为重要的研究内容。


技术实现要素:

3.本发明针对现有技术中的不足,提供一种面向平显的多线宽圆无失真绘制方法,能够解决绘制多线宽圆反走样效果差的问题,适用于任意线宽任意半径的圆的无失真绘制,对硬件的要求低。
4.为实现上述目的,本发明采用以下技术方案:一种面向平显的多线宽圆无失真绘制方法,所述绘制方法包括以下步骤:从圆心处引出一条射线,通过角度遍历确定该射线与多线宽圆的内径和外径的交点,再根据内径和外径的交点确定矩形扫描框范围,对矩形扫描框中的像素点进行遍历并根据像素点与圆心的距离和半径的差值来确定权重值,结合权重值绘制多线宽圆。
5.为优化上述技术方案,采取的具体措施还包括:进一步地,根据内径和外径的交点确定矩形扫描框范围的过程包括以下步骤:s11,令多线宽圆的圆心为,半径为,线宽为,从圆心引出的射线为,射线与x轴的夹角的取值范围为;s12,以预设步进阈值对夹角进行遍历,计算出射线与多线宽圆内径的交点,与多线宽圆外径的交点;s13,比较与的大小,将较小的值定义为,将较大的值定义为;比较与的大小,将较小的值定义为,将较大的值定义为;和分别为射线l与多线宽圆的交点在x轴上的最小取值和最大取值;和分别为射线l与多线宽圆的交点在y轴上的最小取值和最大取值;s14,令为矩形扫描框的左下角顶点坐标,为矩形扫描框的右上角顶点坐标,确定矩形扫描框的范围。
6.进一步地,步骤s12中,计算出射线与多线宽圆内径的交点,与多线宽圆外径的交点的过程包括以下步骤:根据三角函数关系,相对于圆心,计算出射线与内径交点的横坐标为,射线与内径交点的纵坐标为;计算出射线与外径交点的横坐标为,射线与外径交点的纵坐标为;结合圆心的坐标,得到最终结果并对其进行取整:。
7.进一步地,根据内径和外径的交点确定矩形扫描框范围的过程还包括以下步骤:s15,将矩形扫描框范围进行扩大,将作为矩形扫描框的左下角顶点坐标,作为矩形扫描框的右上角顶点坐标;是预设阈值,是像素点尺寸的整数倍。
8.进一步地,对矩形扫描框中的像素点进行遍历并根据像素点与圆心的距离和半径的差值来确定权重值的过程包括以下步骤:s21,选取任意一个像素点,像素点位置均为左上角,计算出该像素点与圆心的距离和半径的差值;对的值进行条件判断确定权重值:;s22,重复步骤s21,直至计算得到所有像素点的权重值。
9.进一步地,结合每个像素点的权重值调整对应像素点的rgba取值是指,绘制的像素点的rgba均由圆心的rgba与权重的乘积计算得到。
10.本发明的有益效果是:第一,本发明的面向平显的多线宽圆无失真绘制方法,可以实现任意线宽任意半径圆的无失真绘制,支持圆心为浮点数的圆的绘制,显示效果好,实用性强;第二,本发明的面向平显的多线宽圆无失真绘制方法,解决了多线宽圆反走样效果较差的问题,根据像素点与圆心距离和半径差值的大小确定权重值,差值越小权重值越大,越大权重值越小,使得图形有平滑的过度,增强显示效果;第三,本发明的面向平显的多线宽圆无失真绘制方法,绘制的多线宽圆在动态显
示状态下显示效果好,不会发生抖动与撕裂的现象。
附图说明
11.图1为本发明实施例的根据角度确定内外径交点的原理示意图;图2为确定任意角度下矩形扫描框的原理示意图;图3为确定矩形扫描框内各像素点权重值的原理示意图;图4a为采用多重采样反走样算法绘制的多线宽圆的仿真显示效果图;图4b是采用多重采样反走样算法绘制的多线宽圆的局部线条放大效果图;图4c为采用本发明算法绘制的多线宽圆的仿真显示效果图;图4d是采用本发明算法绘制的多线宽圆的局部线条放大效果图。
具体实施方式
12.现在结合附图对本发明作进一步详细的说明。
13.需要注意的是,发明中所引用的如“上”、“下”、“左”、“右”、“前”、“后”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
14.本发明实施例提出了一种面向平显的多线宽圆无失真绘制方法,该绘制方法是从圆心处引出一条射线,通过角度遍历确定该射线与多线宽圆的内径和外径的交点,再根据内径和外径的交点确定矩形扫描框范围,对矩形扫描框中的像素点进行遍历并根据像素点与圆心的距离和半径的差值来确定权重值实现反走样效果。
15.图1为根据角度确定内外径交点的示意图。圆的圆心为,半径为,线宽为,从圆心引出的射线为,为射线与从圆心引出的水平线的正向夹角,的取值范围为。以预设步进阈值的步进对夹角进行遍历,计算出射线与多线宽圆内径的交点,与多线宽圆外径的交点。
16.预设步进阈值的取值与多线宽圆的分辨率相关,对于本实施例的绘制方法,步进值取得过大会造成无法遍历到圆上的所有像素点,绘制出的多线宽圆会有缺失的问题。步进值取得过小会增加像素点重复遍历的次数,给硬件造成较大的负担。经测试,将步进值设定在0.1时,可以在分辨率和硬件需求上达到平衡。
17.图2为确定任意角度下矩形扫描框的示意图。
18.步骤1:根据三角函数关系,计算出与内径交点的横坐标为,与内径交点的纵坐标为;与外径交点的横坐标为,与外径交点的纵坐标为。因为整个坐标轴不是以圆心作为原点而是以左上角顶点作为原点,计算出的、、、是相对于圆心的,所以得出的
结果需要考虑到圆心的坐标,得到最终结果并对其进行取整操作为:。
19.步骤2:因为,,所以需要比较与的大小,与的大小来确定矩形扫描框。比较与的大小,较小的值为,较大的值为。比较与的大小,较小的值为,较大的值为。确定矩形扫描框的范围,为矩形扫描框的左下角顶点坐标,为矩形扫描框的右上角顶点坐标。为了保证反走样的效果,需要将矩形扫描框的范围扩大。将作为矩形扫描框的左下角顶点坐标,作为矩形扫描框的右上角顶点坐标;是预设阈值,是像素点尺寸的整数倍。为了计算方便,假设每个像素点的边长为1,延伸出于2个像素点的位置,即将定为矩形扫描框的左下角顶点坐标,定为矩形扫描框的右上角顶点坐标。设定预设阈值b的目的是为了预留足够的空间进行反走样的操作,b取值过大会增加无效点的遍历减慢效率,b取值过小会造成反走样部分被矩形扫描框切割使得反走样做的不够充分,在本实施例中,b一般取值为2。
20.图3为确定矩形扫描框内各像素点权重值的示意图。对矩形扫描框内的像素点进行遍历,以像素点为例(规定像素点位置均为左上角),计算出该像素点与圆心的距离和半径的差值。对的值进行条件判断确定权重值从而达到反走样的效果:。
21.图4a为采用多重采样反走样算法绘制的多线宽圆的仿真显示效果图,图4b是相应的局部线条放大效果图;图4c为采用本发明算法绘制的多线宽圆的仿真显示效果图,图4d是相应的局部线条放大效果图。多重采样反走样算法是将单个像素点分为n个采样点,通过计算采样点在线宽内部的个数来确定像素点的rgba的权重值来实现反走样的效果,这样施加的反走样效果只有一层没有一个渐变的过程会造成像素值较大跨度的跳变,对锯齿现象的优化达不到预期的效果。本发明算法通过像素点到圆心的距离与半径的插值来确定权重值,不再是单层的反走样,使得反走样效果有一个平滑的过度,优化了反走样的效果,很好地解决了多重采样算法遗留下来的问题。通过对比可以看出,本发明方法的反走样显示效
果比多重采样反走样算法得到的显示效果更好。反走样通过权重值有一个平滑的过度,优化了反走样的显示效果且动态显示效果良好,并且支持任意半径任意线宽的圆的绘制。
22.以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献