CN114596386B - 一种面向平显的多线宽圆无失真绘制方法 - Google Patents
一种面向平显的多线宽圆无失真绘制方法 Download PDFInfo
- Publication number
- CN114596386B CN114596386B CN202210500805.7A CN202210500805A CN114596386B CN 114596386 B CN114596386 B CN 114596386B CN 202210500805 A CN202210500805 A CN 202210500805A CN 114596386 B CN114596386 B CN 114596386B
- Authority
- CN
- China
- Prior art keywords
- circle
- value
- line
- ray
- scanning frame
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000009877 rendering Methods 0.000 claims 2
- 230000000694 effects Effects 0.000 abstract description 27
- 238000010586 diagram Methods 0.000 description 14
- 238000004422 calculation algorithm Methods 0.000 description 13
- 238000005070 sampling Methods 0.000 description 9
- 230000003321 amplification Effects 0.000 description 3
- 238000003199 nucleic acid amplification method Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 235000014698 Brassica juncea var multisecta Nutrition 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 244000275904 brauner Senf Species 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003631 expected effect Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 239000010410 layer Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/206—Drawing of charts or graphs
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种面向平显的多线宽圆无失真绘制方法,包括以下步骤:从圆心处引出一条射线,通过角度遍历确定该射线与多线宽圆的内径和外径的交点,再根据内径和外径的交点确定矩形扫描框范围,对扫描框中的像素点进行遍历并根据像素点与圆心的距离和半径的差值来确定权重值,结合权重值绘制多线宽圆。本发明能够解决绘制多线宽圆反走样效果差的问题,适用于任意线宽任意半径的圆的无失真绘制,对硬件的要求低。
Description
技术领域
本发明涉及图形显示技术领域,具体而言涉及一种面向平显的多线宽圆无失真绘制方法。
背景技术
圆是组成计算机图形最基本的元素之一,在很多显示系统中需要绘制任意线宽任意半径的圆。常见的多线宽圆的绘制方法采取的是通过Bresenham算法确定1/8圆的轮廓再根据对称性确定整圆的轮廓,采用多重采样算法给圆施加反走样效果。这个方法实现简单方便且快速,但是得到的反走样效果较差且动态显示效果会出现撕裂问题。如何快速简单的绘制无失真多线宽圆成为重要的研究内容。
发明内容
本发明针对现有技术中的不足,提供一种面向平显的多线宽圆无失真绘制方法,能够解决绘制多线宽圆反走样效果差的问题,适用于任意线宽任意半径的圆的无失真绘制,对硬件的要求低。
为实现上述目的,本发明采用以下技术方案:
一种面向平显的多线宽圆无失真绘制方法,所述绘制方法包括以下步骤:
从圆心处引出一条射线,通过角度遍历确定该射线与多线宽圆的内径和外径的交点,再根据内径和外径的交点确定矩形扫描框范围,对矩形扫描框中的像素点进行遍历并根据像素点与圆心的距离和半径的差值来确定权重值,结合权重值绘制多线宽圆。
为优化上述技术方案,采取的具体措施还包括:
进一步地,根据内径和外径的交点确定矩形扫描框范围的过程包括以下步骤:
S13,比较与的大小,将较小的值定义为,将较大的值定义为;比较与的大小,将较小的值定义为,将较大的值定义为;和分别为射线L
与多线宽圆的交点在x轴上的最小取值和最大取值;和分别为射线L与多线宽圆的
交点在y轴上的最小取值和最大取值;
进一步地,根据内径和外径的交点确定矩形扫描框范围的过程还包括以下步骤:
进一步地,对矩形扫描框中的像素点进行遍历并根据像素点与圆心的距离和半径的差值来确定权重值的过程包括以下步骤:
S22,重复步骤S21,直至计算得到所有像素点的权重值。
进一步地,结合每个像素点的权重值调整对应像素点的RGBA取值是指,绘制的像素点的RGBA均由圆心的RGBA与权重的乘积计算得到。
本发明的有益效果是:
第一,本发明的面向平显的多线宽圆无失真绘制方法,可以实现任意线宽任意半径圆的无失真绘制,支持圆心为浮点数的圆的绘制,显示效果好,实用性强;
第二,本发明的面向平显的多线宽圆无失真绘制方法,解决了多线宽圆反走样效果较差的问题,根据像素点与圆心距离和半径差值的大小确定权重值,差值越小权重值越大,越大权重值越小,使得图形有平滑的过度,增强显示效果;
第三,本发明的面向平显的多线宽圆无失真绘制方法,绘制的多线宽圆在动态显示状态下显示效果好,不会发生抖动与撕裂的现象。
附图说明
图1为本发明实施例的根据角度确定内外径交点的原理示意图;
图2为确定任意角度下矩形扫描框的原理示意图;
图3为确定矩形扫描框内各像素点权重值的原理示意图;
图4a为采用多重采样反走样算法绘制的多线宽圆的仿真显示效果图;
图4b是采用多重采样反走样算法绘制的多线宽圆的局部线条放大效果图;
图4c为采用本发明算法绘制的多线宽圆的仿真显示效果图;
图4d是采用本发明算法绘制的多线宽圆的局部线条放大效果图。
具体实施方式
现在结合附图对本发明作进一步详细的说明。
需要注意的是,发明中所引用的如“上”、“下”、“左”、“右”、“前”、“后”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
本发明实施例提出了一种面向平显的多线宽圆无失真绘制方法,该绘制方法是从圆心处引出一条射线,通过角度遍历确定该射线与多线宽圆的内径和外径的交点,再根据内径和外径的交点确定矩形扫描框范围,对矩形扫描框中的像素点进行遍历并根据像素点与圆心的距离和半径的差值来确定权重值实现反走样效果。
图1为根据角度确定内外径交点的示意图。圆的圆心为,半径为,线宽为,从圆心引出的射线为,为射线与从圆心引出的水平线的正向夹角,的取值范围
为。以预设步进阈值的步进对夹角进行遍历,计算出射线与多线宽圆内径的交点,与多线宽圆外径的交点。
预设步进阈值的取值与多线宽圆的分辨率相关,对于本实施例的绘制方法,步进值取得过大会造成无法遍历到圆上的所有像素点,绘制出的多线宽圆会有缺失的问题。步进值取得过小会增加像素点重复遍历的次数,给硬件造成较大的负担。经测试,将步进值设定在0.1时,可以在分辨率和硬件需求上达到平衡。
图2为确定任意角度下矩形扫描框的示意图。
步骤1:根据三角函数关系,计算出与内径交点的横坐标为,与内径交
点的纵坐标为;与外径交点的横坐标为,与外径交点的
纵坐标为。因为整个坐标轴不是以圆心作为原点而是以左上角顶点
作为原点,计算出的、、、是相对于圆心的,所以得出的结果需要考虑到
圆心的坐标,得到最终结果并对其进行取整操作为:
步骤2:因为,,所以需要比较与的大小,与
的大小来确定矩形扫描框。比较与的大小,较小的值为,较大的值为。比较
与的大小,较小的值为,较大的值为。确定矩形扫描框的范围,为矩形
扫描框的左下角顶点坐标,为矩形扫描框的右上角顶点坐标。为了保证反走样的
效果,需要将矩形扫描框的范围扩大。将作为矩形扫描框的左下角顶点坐
标,作为矩形扫描框的右上角顶点坐标;是预设阈值,是像素点尺寸的
整数倍。为了计算方便,假设每个像素点的边长为1,延伸出于2个像素点的位置,即将定为矩形扫描框的左下角顶点坐标,定为矩形扫描框的
右上角顶点坐标。设定预设阈值b的目的是为了预留足够的空间进行反走样的操作,b取值
过大会增加无效点的遍历减慢效率,b取值过小会造成反走样部分被矩形扫描框切割使得
反走样做的不够充分,在本实施例中,b一般取值为2。
图3为确定矩形扫描框内各像素点权重值的示意图。对矩形扫描框内的像素点进
行遍历,以像素点为例(规定像素点位置均为左上角),计算出该像素点与圆心的距离
和半径的差值。对的值进行
条件判断确定权重值从而达到反走样的效果:
图4a为采用多重采样反走样算法绘制的多线宽圆的仿真显示效果图,图4b是相应的局部线条放大效果图;图4c为采用本发明算法绘制的多线宽圆的仿真显示效果图,图4d是相应的局部线条放大效果图。多重采样反走样算法是将单个像素点分为n个采样点,通过计算采样点在线宽内部的个数来确定像素点的RGBA的权重值来实现反走样的效果,这样施加的反走样效果只有一层没有一个渐变的过程会造成像素值较大跨度的跳变,对锯齿现象的优化达不到预期的效果。本发明算法通过像素点到圆心的距离与半径的插值来确定权重值,不再是单层的反走样,使得反走样效果有一个平滑的过度,优化了反走样的效果,很好地解决了多重采样算法遗留下来的问题。通过对比可以看出,本发明方法的反走样显示效果比多重采样反走样算法得到的显示效果更好。反走样通过权重值有一个平滑的过度,优化了反走样的显示效果且动态显示效果良好,并且支持任意半径任意线宽的圆的绘制。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (4)
1.一种面向平显的多线宽圆无失真绘制方法,其特征在于,所述绘制方法包括以下步骤:
从圆心处引出一条射线,通过角度遍历确定该射线与多线宽圆的内径和外径的交点,再根据内径和外径的交点确定矩形扫描框范围,对矩形扫描框中的像素点进行遍历并根据像素点与圆心的距离和半径的差值来确定每个像素点的权重值,结合每个像素点的权重值调整对应像素点的RGBA取值,完成多线宽圆的绘制;
根据内径和外径的交点确定矩形扫描框范围的过程包括以下步骤:
S11,令多线宽圆的圆心为(xc,yc),半径为R,线宽为Width,从圆心引出的射线为L,射线与x轴的夹角θ的取值范围为[0,2π];
S12,以预设步进阈值对夹角θ进行遍历,计算出射线L与多线宽圆内径的交点(xin,yin),与多线宽圆外径的交点(xout,yout);
S13,比较xin与xout的大小,将较小的值定义为xmin,将较大的值定义为xmax;比较yin与yout的大小,将较小的值定义为ymin,将较大的值定义为ymax;xmin是矩形扫描框在x轴上的最小取值,xmax是矩形扫描框在x轴上的最大取值,ymin是矩形扫描框在y轴上的最小取值,ymax是矩形扫描框在y轴上的最大取值;
S14,令(xmin,ymin)为矩形扫描框的左下角顶点坐标,(xmax,ymax)为矩形扫描框的右上角顶点坐标,确定矩形扫描框的范围;
对矩形扫描框中的像素点进行遍历并根据像素点与圆心的距离和半径的差值来确定权重值的过程包括以下步骤:
S21,选取任意一个像素点(xs,ys),像素点位置均为左上角,计算出该像素点与圆心的距离和半径的差值fraction_sample=sqrt((xs-xc)2+(ys-yc)2)-R;
对fraction_sample的值进行条件判断确定权重值weight:
S22,重复步骤S21,直至计算得到所有像素点的权重值。
3.根据权利要求1所述的面向平显的多线宽圆无失真绘制方法,其特征在于,根据内径和外径的交点确定矩形扫描框范围的过程还包括以下步骤:
S15,将矩形扫描框范围进行扩大,将(xmin-b,ymin-b)作为矩形扫描框左上角顶点,(xmax+b,ymax+b)作为矩形扫描框右下角顶点;b是预设阈值,是像素点尺寸q的整数倍。
4.根据权利要求1所述的面向平显的多线宽圆无失真绘制方法,其特征在于,结合每个像素点的权重值调整对应像素点的RGBA取值是指,绘制的像素点的RGBA均由圆心的RGBA与权重的乘积计算得到。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210500805.7A CN114596386B (zh) | 2022-05-10 | 2022-05-10 | 一种面向平显的多线宽圆无失真绘制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210500805.7A CN114596386B (zh) | 2022-05-10 | 2022-05-10 | 一种面向平显的多线宽圆无失真绘制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114596386A CN114596386A (zh) | 2022-06-07 |
CN114596386B true CN114596386B (zh) | 2022-08-30 |
Family
ID=81811920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210500805.7A Active CN114596386B (zh) | 2022-05-10 | 2022-05-10 | 一种面向平显的多线宽圆无失真绘制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114596386B (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617640B (zh) * | 2013-11-13 | 2016-07-20 | 南京航空航天大学 | 一种线条图形反走样显示方法 |
CN104484893B (zh) * | 2014-12-16 | 2018-07-10 | 广东威创视讯科技股份有限公司 | 圆环形图像的绘制方法和系统 |
CN105718233B (zh) * | 2016-01-15 | 2019-08-20 | 南京航空航天大学 | 一种平显多线宽三角形无失真的绘制方法 |
-
2022
- 2022-05-10 CN CN202210500805.7A patent/CN114596386B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114596386A (zh) | 2022-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10546412B2 (en) | Variable rate shading | |
US10147227B2 (en) | Variable rate shading | |
CN101887592B (zh) | 一种矢量图形地图符号的绘制方法 | |
US6885378B1 (en) | Method and apparatus for the implementation of full-scene anti-aliasing supersampling | |
US7884825B2 (en) | Drawing method, image generating device, and electronic information apparatus | |
CN103996170B (zh) | 一种具有超高解析度的图像边缘锯齿消除方法 | |
US6816166B2 (en) | Image conversion method, image processing apparatus, and image display apparatus | |
EP1958162B1 (en) | Vector graphics anti-aliasing | |
US20050226538A1 (en) | Video scaling | |
JP2002537615A (ja) | スーパサンプリング・サンプル・バッファを有し、アーチファクトを縮小するため選択的フィルタリング調節を使用して出力ピクセルを生成するグラフィックス・システム。 | |
US4796020A (en) | Method and apparatus for drawing antialiased lines and polygons | |
JPH0285970A (ja) | 滑かな陰影を付した連続トーンの映像生成装置とシステム | |
CN111145286A (zh) | 一种基于gpu的用于边缘计算场景的点九图片贴图绘制方法 | |
CN108537718B (zh) | Gpu中一种实现点图元反走样的装置和方法 | |
CN106204453A (zh) | 一种图像的插值方法及装置 | |
JP2002537613A (ja) | スーパサンプリング・サンプル・バッファを有し、表示効果を実現するため選択的フィルタ調節を使用して出力ピクセルを生成するグラフィックス・システム | |
CN114596386B (zh) | 一种面向平显的多线宽圆无失真绘制方法 | |
CN114913265A (zh) | 一种面向平显的多线宽线段无失真绘制方法 | |
JP2009301284A (ja) | 描画装置および方法 | |
DE60004323T2 (de) | Verfahren und vorrichtung zum streck-blocktransfer (stretch blitting) mit einem 3d pipeline prozessor | |
CN109829962B (zh) | 一种利用opengl的物体空间消隐线计算加速方法 | |
CN108510565A (zh) | Gpu中一种实现线段转三角形绘制的装置与方法 | |
CN117274527A (zh) | 一种发电机设备三维可视化模型数据集构建方法 | |
CN114913264A (zh) | 一种面向平显的圆弧无失真绘制方法 | |
US11645793B2 (en) | Curve antialiasing based on curve-pixel intersection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |