一种不规则圆角多边形绘制方法技术

技术编号:35919333 阅读:21 留言:0更新日期:2022-12-10 11:02
本发明专利技术提供了一种不规则圆角多边形绘制方法,方法包括:S1:获取封闭多边形图形在当前图形渲染坐标系中的各顶点坐标;S2:对每个顶点设置圆角系数;S3:定位其中一个顶点,根据该顶点相邻顶点的坐标计算该顶点两侧的切线点坐标;S4:以当前顶点为控制点,以左切线点和右切线点分别为起点和终点,绘制贝塞尔曲线;S5:重复执行步骤S3

【技术实现步骤摘要】
一种不规则圆角多边形绘制方法


[0001]本专利技术涉及电子屏幕绘制显示
,特别涉及一种不规则圆角多边形绘制方法。

技术介绍

[0002]在系统开发中,前端同样重要,当前技术下,在移动端开发中,布局系统往往都是以矩形的形式存在的,其中,常见的圆角多边形只是圆角矩形。而圆角矩形在系统中有直接的API支持,API给开发者提供了圆角半径的设置接口,可通过对接口的直接调用,实现界面设计;该方式的实现原理是在四个角画半径为r的圆做切线切割处理(如图3所示),然而,基于该原理这种方案仅能够满足矩形类界面的渲染;
[0003]然而在实际的开发工作中往往有用到平滑曲线多边形表达业务需求,例如:图标数据走势及分布、地图形式轨迹的表达、平面多边形的圆角化处理等等,现有的绘制方法无法满足非矩形界面的渲染。

技术实现思路

[0004]为解决上述问题,本专利技术提供了一种不规则圆角多边形绘制方法,通过以多边形各角顶点为核心,计算相邻的切线点,进而绘制贝塞尔曲线,之后遍历多边形所有的顶点,执行相同的操作,获得针对各顶点对应的贝塞尔曲线,封闭整个曲线,最后得到圆角多边形,解决现有技术不能绘制非矩形界面的局限性,实现一切封闭多边形的圆角化处理。
[0005]本专利技术提供了一种不规则圆角多边形绘制方法,具体技术方案如下:
[0006]S1:获取封闭多边形图形在当前图形渲染坐标系中的各顶点坐标,所述封闭多边形图形至少有三个顶点;
[0007]S2:对每个顶点设置圆角系数;
[0008]S3:定位其中一个顶点,根据该顶点相邻顶点的坐标计算该顶点两侧的切线点坐标;
[0009]S4:以当前顶点为控制点,以左切线点和右切线点分别为起点和终点,绘制贝塞尔曲线;
[0010]S5:重复执行步骤S3

S4,直至定位所有顶点完成步骤S3和S4的操作,将整个曲线封闭,获得圆角多边形。
[0011]进一步的,所述图形渲染坐标系为二维直角坐标系。
[0012]进一步的,所述圆角系数满足[0,0.5]。
[0013]进一步的,所述切线点坐标计算过程如下:
[0014]S301:基于当前顶点的圆角系数、自身坐标以及该顶点的左相邻点坐标,计算该顶点与所述左切线点的坐标点差值;
[0015]基于当前顶点的圆角系数、自身坐标以及该顶点的右相邻点坐标,计算该顶点与所述右切线点的坐标点差值;
[0016]S302:基于当前顶点的坐标以及该顶点分别与所述左切线点和所述右切线点的坐标点差值,获得所述左切线点和所述右切线点的坐标点。
[0017]进一步的,步骤S2

S4重复执行时,基于当前封闭多边形图形,依次定位顶点进行相应操作。
[0018]本专利技术的有益效果如下:
[0019]1、本专利技术的方法通过待绘制图形中一顶点以及相邻顶点的坐标,计算并结合圆角系数标识当前顶点的左、右切线点的坐标,根据当前顶点的左、右切线点的坐标和当前顶点的坐标,绘制贝塞尔曲线,通过该操作基于每个顶点分别绘制对应的贝塞尔曲线,并将曲线封闭,完成整个曲线的绘画,以不规则图形的各顶点为核心绘制曲线,实现不规则封闭多边形的圆角化处理,避免了不规则图形各角较大差异导致圆角绘制的局限。
[0020]2、本专利技术的方法基于顶点坐标进行相应的操作实现图形绘制,不再依赖在顶点处绘制设定半径参数的圆形进行平滑处理,不仅兼容系统的圆角矩形的效果样式,而且支持多个不同角度顶点存在的不规则封闭图形的圆角绘制,适用于任何封闭的不规则多边形。
附图说明
[0021]图1是本专利技术的方法流程示意图;
[0022]图2是本专利技术的绘制过程效果演示示意图;
[0023]图3是现有方式处理过程效果示意图。
具体实施方式
[0024]在下面的描述中对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0025]实施例1
[0026]本专利技术的实施例1公开了一种不规则圆角多边形绘制方法,如图1所示,具体步骤流程如下:
[0027]S1:获取封闭多边形图形在当前图形渲染坐标系中的各顶点坐标,所述封闭多边形图形至少有三个顶点;
[0028]本实施例中,所述图形渲染坐标系为二维直角坐标系。
[0029]S2:对每个顶点设置圆角系数,所述圆角系数a,满足a大于等于0,小于等于0.5,其中,a越大圆角越大。
[0030]S3:定位其中一个顶点,根据该顶点相邻顶点的坐标计算该顶点两侧的切线点坐标;
[0031]所述切线点坐标计算过程如下:
[0032]S301:基于当前顶点的圆角系数、自身坐标以及该顶点的左相邻点坐标,计算该顶点与所述左切线点的坐标点差值;
[0033]基于当前顶点的圆角系数、自身坐标以及该顶点的右相邻点坐标,计算该顶点与所述右切线点的坐标点差值;
[0034]S302:基于当前顶点的坐标以及该顶点分别与所述左切线点和所述右切线点的坐标点差值,获得所述左切线点和所述右切线点的坐标点。
[0035]S4:以当前顶点为控制点,以左切线点和右切线点分别为起点和终点,绘制贝塞尔曲线;
[0036]S5:基于当前封闭多边形图形,依次定位顶点,重复执行步骤S3

S4,直至定位所有顶点完成步骤S3和S4的操作,再将整个曲线封闭,最终获得圆角多边形。
[0037]具体的,本实施例中,以一个封闭多边形图形A进行说明,该封闭多边形图形A,顶点个数为N(N>=3),顶点坐标分别为:
[0038]P0=(x0,y0),P1=(x1,y1),P2=(x2,y2),P3=(x3,y3),...,Pn=(xn,yn);
[0039]该封闭多边形图形A,可由制图软件依次通过直线将P0连接至Pn获得,该封闭多边形图形的顶角为直线相交的非圆角的角,角的度数为T,满足0
°
<T<360
°

[0040]结合图2所示,基于上述封闭多边形图形A,绘制过程如下:
[0041]从第一个点P0(x0,y0)开始,设置圆角系数a;
[0042]根据Pn(xn,yn)、P0(x0,y0)、P1(x1,y1)的坐标点计算出顶点P0两侧的切线点P0_left、P0_right,其中,P0_left表示左切线点,P0_right表示右切线点,具体如下:
[0043]计算P0_left与P0之间x轴的差值dxl=a*(x0

xn),y轴差值为dyl=a*(y0

yn);
[0044]计算P0_right与P0之间x轴的差值dxr=a*(x1
‑本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种不规则圆角多边形绘制方法,其特征在于,包括:S1:获取封闭多边形图形在当前图形渲染坐标系中的各顶点坐标,所述封闭多边形图形至少有三个顶点;S2:对每个顶点设置圆角系数;S3:定位其中一个顶点,根据该顶点相邻顶点的坐标计算该顶点两侧的切线点坐标;S4:以当前顶点为控制点,以左切线点和右切线点分别为起点和终点,绘制贝塞尔曲线;S5:重复执行步骤S3

S4,直至定位所有顶点完成步骤S3和S4的操作,将整个曲线封闭,获得圆角多边形。2.根据权利要求1所述的不规则圆角多边形绘制方法,其特征在于,所述图形渲染坐标系为二维直角坐标系。3.根据权利要求2所述的不规则圆角多边形绘制方法,其特征在于,所...

【专利技术属性】
技术研发人员:王振旗李靖陈锐
申请(专利权)人:成都路行通信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1