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

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

Info

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
Application number
CN202210500805.7A
Other languages
English (en)
Other versions
CN114596386A (zh
Inventor
李涵
夏伟杰
李文强
张川
周钰致
刘伟强
周建江
苏霖
李海林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University of Aeronautics and Astronautics
Original Assignee
Nanjing University of Aeronautics and Astronautics
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing University of Aeronautics and Astronautics filed Critical Nanjing University of Aeronautics and Astronautics
Priority to CN202210500805.7A priority Critical patent/CN114596386B/zh
Publication of CN114596386A publication Critical patent/CN114596386A/zh
Application granted granted Critical
Publication of CN114596386B publication Critical patent/CN114596386B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing 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圆的轮廓再根据对称性确定整圆的轮廓,采用多重采样算法给圆施加反走样效果。这个方法实现简单方便且快速,但是得到的反走样效果较差且动态显示效果会出现撕裂问题。如何快速简单的绘制无失真多线宽圆成为重要的研究内容。
发明内容
本发明针对现有技术中的不足,提供一种面向平显的多线宽圆无失真绘制方法,能够解决绘制多线宽圆反走样效果差的问题,适用于任意线宽任意半径的圆的无失真绘制,对硬件的要求低。
为实现上述目的,本发明采用以下技术方案:
一种面向平显的多线宽圆无失真绘制方法,所述绘制方法包括以下步骤:
从圆心处引出一条射线,通过角度遍历确定该射线与多线宽圆的内径和外径的交点,再根据内径和外径的交点确定矩形扫描框范围,对矩形扫描框中的像素点进行遍历并根据像素点与圆心的距离和半径的差值来确定权重值,结合权重值绘制多线宽圆。
为优化上述技术方案,采取的具体措施还包括:
进一步地,根据内径和外径的交点确定矩形扫描框范围的过程包括以下步骤:
S11,令多线宽圆的圆心为
Figure 63739DEST_PATH_IMAGE001
,半径为
Figure 520128DEST_PATH_IMAGE002
,线宽为
Figure 10015DEST_PATH_IMAGE003
,从圆心引出的射线为
Figure 616053DEST_PATH_IMAGE004
, 射线与x轴的夹角
Figure 165983DEST_PATH_IMAGE005
的取值范围为
Figure 109668DEST_PATH_IMAGE006
S12,以预设步进阈值对夹角
Figure 137667DEST_PATH_IMAGE005
进行遍历,计算出射线
Figure 584829DEST_PATH_IMAGE004
与多线宽圆内径的交点
Figure 305660DEST_PATH_IMAGE007
,与多线宽圆外径的交点
Figure 487374DEST_PATH_IMAGE008
S13,比较
Figure 319064DEST_PATH_IMAGE009
Figure 620732DEST_PATH_IMAGE010
的大小,将较小的值定义为
Figure 778044DEST_PATH_IMAGE011
,将较大的值定义为
Figure 430742DEST_PATH_IMAGE012
;比较
Figure 800544DEST_PATH_IMAGE013
Figure 238609DEST_PATH_IMAGE014
的大小,将较小的值定义为
Figure 301243DEST_PATH_IMAGE015
,将较大的值定义为
Figure 175658DEST_PATH_IMAGE016
Figure 614730DEST_PATH_IMAGE011
Figure 156570DEST_PATH_IMAGE012
分别为射线L 与多线宽圆的交点在x轴上的最小取值和最大取值;
Figure 390105DEST_PATH_IMAGE015
Figure 751816DEST_PATH_IMAGE016
分别为射线L与多线宽圆的 交点在y轴上的最小取值和最大取值;
S14,令
Figure 479732DEST_PATH_IMAGE017
为矩形扫描框的左下角顶点坐标,
Figure 876078DEST_PATH_IMAGE018
为矩形扫描框的右 上角顶点坐标,确定矩形扫描框的范围。
进一步地,步骤S12中,计算出射线
Figure 280515DEST_PATH_IMAGE004
与多线宽圆内径的交点
Figure 129522DEST_PATH_IMAGE019
,与多线宽圆 外径的交点
Figure 910396DEST_PATH_IMAGE020
的过程包括以下步骤:
根据三角函数关系,相对于圆心
Figure 161249DEST_PATH_IMAGE021
,计算出射线与内径交点的横坐标为
Figure 484389DEST_PATH_IMAGE022
,射线与内径交点的纵坐标为
Figure 86272DEST_PATH_IMAGE023
;计算出射线与外径交点的横坐标 为
Figure 405258DEST_PATH_IMAGE024
,射线与外径交点的纵坐标为
Figure 510617DEST_PATH_IMAGE025
结合圆心的坐标,得到最终结果并对其进行
Figure 522436DEST_PATH_IMAGE026
取整:
Figure 80456DEST_PATH_IMAGE027
进一步地,根据内径和外径的交点确定矩形扫描框范围的过程还包括以下步骤:
S15,将矩形扫描框范围进行扩大,将
Figure 953865DEST_PATH_IMAGE028
作为矩形扫描框的左下角 顶点坐标,
Figure 913731DEST_PATH_IMAGE029
作为矩形扫描框的右上角顶点坐标;
Figure 96450DEST_PATH_IMAGE030
是预设阈值,是像素点 尺寸
Figure 407346DEST_PATH_IMAGE031
的整数倍。
进一步地,对矩形扫描框中的像素点进行遍历并根据像素点与圆心的距离和半径的差值来确定权重值的过程包括以下步骤:
S21,选取任意一个像素点
Figure 68135DEST_PATH_IMAGE032
,像素点位置均为左上角,计算出该像素点与圆心 的距离和半径的差值
Figure 148086DEST_PATH_IMAGE033
Figure 252439DEST_PATH_IMAGE034
的值进行条件判断确定权重值
Figure 785052DEST_PATH_IMAGE035
Figure 983952DEST_PATH_IMAGE036
S22,重复步骤S21,直至计算得到所有像素点的权重值。
进一步地,结合每个像素点的权重值调整对应像素点的RGBA取值是指,绘制的像素点的RGBA均由圆心的RGBA与权重的乘积计算得到。
本发明的有益效果是:
第一,本发明的面向平显的多线宽圆无失真绘制方法,可以实现任意线宽任意半径圆的无失真绘制,支持圆心为浮点数的圆的绘制,显示效果好,实用性强;
第二,本发明的面向平显的多线宽圆无失真绘制方法,解决了多线宽圆反走样效果较差的问题,根据像素点与圆心距离和半径差值的大小确定权重值,差值越小权重值越大,越大权重值越小,使得图形有平滑的过度,增强显示效果;
第三,本发明的面向平显的多线宽圆无失真绘制方法,绘制的多线宽圆在动态显示状态下显示效果好,不会发生抖动与撕裂的现象。
附图说明
图1为本发明实施例的根据角度确定内外径交点的原理示意图;
图2为确定任意角度下矩形扫描框的原理示意图;
图3为确定矩形扫描框内各像素点权重值的原理示意图;
图4a为采用多重采样反走样算法绘制的多线宽圆的仿真显示效果图;
图4b是采用多重采样反走样算法绘制的多线宽圆的局部线条放大效果图;
图4c为采用本发明算法绘制的多线宽圆的仿真显示效果图;
图4d是采用本发明算法绘制的多线宽圆的局部线条放大效果图。
具体实施方式
现在结合附图对本发明作进一步详细的说明。
需要注意的是,发明中所引用的如“上”、“下”、“左”、“右”、“前”、“后”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
本发明实施例提出了一种面向平显的多线宽圆无失真绘制方法,该绘制方法是从圆心处引出一条射线,通过角度遍历确定该射线与多线宽圆的内径和外径的交点,再根据内径和外径的交点确定矩形扫描框范围,对矩形扫描框中的像素点进行遍历并根据像素点与圆心的距离和半径的差值来确定权重值实现反走样效果。
图1为根据角度确定内外径交点的示意图。圆的圆心为
Figure 183989DEST_PATH_IMAGE021
,半径为
Figure 708511DEST_PATH_IMAGE002
,线宽为
Figure 462841DEST_PATH_IMAGE037
,从圆心引出的射线为
Figure 747323DEST_PATH_IMAGE004
Figure 536287DEST_PATH_IMAGE005
为射线
Figure 966132DEST_PATH_IMAGE004
与从圆心引出的水平线的正向夹角,
Figure 473336DEST_PATH_IMAGE005
的取值范围 为
Figure 545197DEST_PATH_IMAGE038
。以预设步进阈值的步进对夹角
Figure 188668DEST_PATH_IMAGE005
进行遍历,计算出射线
Figure 54993DEST_PATH_IMAGE004
与多线宽圆内径的交点
Figure 797297DEST_PATH_IMAGE019
,与多线宽圆外径的交点
Figure 407270DEST_PATH_IMAGE020
预设步进阈值的取值与多线宽圆的分辨率相关,对于本实施例的绘制方法,步进值取得过大会造成无法遍历到圆上的所有像素点,绘制出的多线宽圆会有缺失的问题。步进值取得过小会增加像素点重复遍历的次数,给硬件造成较大的负担。经测试,将步进值设定在0.1时,可以在分辨率和硬件需求上达到平衡。
图2为确定任意角度下矩形扫描框的示意图。
步骤1:根据三角函数关系,计算出与内径交点的横坐标为
Figure 170826DEST_PATH_IMAGE022
,与内径交 点的纵坐标为
Figure 942473DEST_PATH_IMAGE023
;与外径交点的横坐标为
Figure 689849DEST_PATH_IMAGE024
,与外径交点的 纵坐标为
Figure 837934DEST_PATH_IMAGE025
。因为整个坐标轴不是以圆心作为原点而是以左上角顶点 作为原点,计算出的
Figure 206730DEST_PATH_IMAGE039
Figure 149278DEST_PATH_IMAGE040
Figure 118371DEST_PATH_IMAGE041
Figure 70146DEST_PATH_IMAGE042
是相对于圆心
Figure 542716DEST_PATH_IMAGE021
的,所以得出的结果需要考虑到 圆心的坐标,得到最终结果并对其进行
Figure 187324DEST_PATH_IMAGE026
取整操作为:
Figure 128866DEST_PATH_IMAGE027
步骤2:因为
Figure 618753DEST_PATH_IMAGE043
Figure 211409DEST_PATH_IMAGE044
,所以需要比较
Figure 26918DEST_PATH_IMAGE039
Figure 439445DEST_PATH_IMAGE041
的大小,
Figure 733023DEST_PATH_IMAGE040
Figure 196496DEST_PATH_IMAGE042
的大小来确定矩形扫描框。比较
Figure 917328DEST_PATH_IMAGE039
Figure 82730DEST_PATH_IMAGE041
的大小,较小的值为
Figure 179999DEST_PATH_IMAGE045
,较大的值为
Figure 481667DEST_PATH_IMAGE046
。比较
Figure 373400DEST_PATH_IMAGE047
Figure 773901DEST_PATH_IMAGE042
的大小,较小的值为
Figure 409281DEST_PATH_IMAGE048
,较大的值为
Figure 831036DEST_PATH_IMAGE049
。确定矩形扫描框的范围,
Figure 893669DEST_PATH_IMAGE050
为矩形 扫描框的左下角顶点坐标,
Figure 33664DEST_PATH_IMAGE051
为矩形扫描框的右上角顶点坐标。为了保证反走样的 效果,需要将矩形扫描框的范围扩大。将
Figure 207156DEST_PATH_IMAGE028
作为矩形扫描框的左下角顶点坐 标,
Figure 483417DEST_PATH_IMAGE029
作为矩形扫描框的右上角顶点坐标;
Figure 733264DEST_PATH_IMAGE052
是预设阈值,是像素点尺寸
Figure 94975DEST_PATH_IMAGE031
的 整数倍。为了计算方便,假设每个像素点的边长为1,延伸出于2个像素点的位置,即将
Figure 72158DEST_PATH_IMAGE053
定为矩形扫描框的左下角顶点坐标,
Figure 734084DEST_PATH_IMAGE054
定为矩形扫描框的 右上角顶点坐标。设定预设阈值b的目的是为了预留足够的空间进行反走样的操作,b取值 过大会增加无效点的遍历减慢效率,b取值过小会造成反走样部分被矩形扫描框切割使得 反走样做的不够充分,在本实施例中,b一般取值为2。
图3为确定矩形扫描框内各像素点权重值的示意图。对矩形扫描框内的像素点进 行遍历,以像素点
Figure 138520DEST_PATH_IMAGE032
为例(规定像素点位置均为左上角),计算出该像素点与圆心的距离 和半径的差值
Figure 721948DEST_PATH_IMAGE033
。对
Figure 253555DEST_PATH_IMAGE034
的值进行 条件判断确定权重值
Figure 769987DEST_PATH_IMAGE035
从而达到反走样的效果:
Figure 345325DEST_PATH_IMAGE055
图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:
Figure FDA0003748718310000011
S22,重复步骤S21,直至计算得到所有像素点的权重值。
2.根据权利要求1所述的面向平显的多线宽圆无失真绘制方法,其特征在于,步骤S12中,计算出射线L与多线宽圆内径的交点(xin,yin),与多线宽圆外径的交点(xout,yout)的过程包括以下步骤:
根据三角函数关系,相对于圆心(xc,yc),计算出射线与内径交点的横坐标为xin=R*cosθ,射线与内径交点的纵坐标为yin=R*sinθ;计算出射线与外径交点的横坐标为xout=(R+Width)*cosθ,射线与外径交点的纵坐标为yout=(R+Width)*sinθ;
结合圆心的坐标,得到最终结果并对其进行round取整:
Figure FDA0003748718310000012
3.根据权利要求1所述的面向平显的多线宽圆无失真绘制方法,其特征在于,根据内径和外径的交点确定矩形扫描框范围的过程还包括以下步骤:
S15,将矩形扫描框范围进行扩大,将(xmin-b,ymin-b)作为矩形扫描框左上角顶点,(xmax+b,ymax+b)作为矩形扫描框右下角顶点;b是预设阈值,是像素点尺寸q的整数倍。
4.根据权利要求1所述的面向平显的多线宽圆无失真绘制方法,其特征在于,结合每个像素点的权重值调整对应像素点的RGBA取值是指,绘制的像素点的RGBA均由圆心的RGBA与权重的乘积计算得到。
CN202210500805.7A 2022-05-10 2022-05-10 一种面向平显的多线宽圆无失真绘制方法 Active CN114596386B (zh)

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)

* Cited by examiner, † Cited by third party
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 南京航空航天大学 一种平显多线宽三角形无失真的绘制方法

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