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

基于二维点阵的网格图案生成方法与流程

2022-03-01 21:47:49 来源:中国专利 TAG:


1.本发明涉及空间图形的绘制技术领域,具体地涉及一种基于二维点阵的网格图案生成方法。


背景技术:

2.进入21世纪以后,随着设计手段和工艺能力的进步,在扎哈
·
哈迪德等建筑师得努力下,参数化设计(parametric design)在建筑行业大量出现,这种设计手法通常会通过某种计算机算法,在建筑物的外立面上进行有规律的分割,由计算机自动生成复杂有序的图案,在不改变建筑物基本形态的前提下使得建筑物的外观呈现出更丰富有趣的感官效果。2015年以后,这一趋势逐渐辐射至家电、汽车、游戏、服装、印刷等行业。
3.参数化设计不仅可以给受众带来更加震撼的视觉冲击力,还有其他优势:一是由于图案由计算机通过算法自动生成,改变了以往由设计师手工设计的工作流程,可以节约大量的人力,一般认为可以将工作效率提高十倍以上;二是由于通过修改参数就可以对图案进行修改和更新,因此可以对结果进行不断迭代和优选,可以使得结果更加合理;三是通过调节参数,还可以发现一些基本不可能手工设计出的可能性。使得设计更加多样化。
4.自然界中能够将画布无间隙铺满的单一图形,只有三角形、矩形、菱形、六边形四种。由于这一性质,这四种图形极其衍生图形作为基础元素在参数化设计中极其常见。相关的算法也层出不穷。
5.但这些算法通常可能会存在以下的一个或几个问题:1、某一套算法只能将三角形、矩形、菱形、六边形中的某一种图形作为基础元素,无法兼顾所有四种图形;2、生成的元素间存在间隙或者交叉,无法实现无间隙铺满;3、生成的网格图案无法按照指定区域的轮廓随形变化;4、只能生成平面的网格图案,无法生成三维空间中的网格图案;5、生成的网格图案无法实现随机、渐大、渐小或其他指定变化规律的效果;6、无法实现在元素中加入间隙。


技术实现要素:

6.本发明实施方式的目的是提供一种基于二维点阵的网格图案生成方法,该方法能够克服现有技术中图案生成方法功能单一的技术问题。
7.为了实现上述目的,本发明实施方式提供一种基于二维点阵的网格图案生成方法,包括:
8.基于待绘制的客体形成虚拟的四边形画布;
9.以所述四边形画布的一个顶点为原点,在所述四边形画布上建立二维坐标系以形成二维点阵;
10.确定当前需要绘制的图形类型;
11.在所述当前需要绘制的图像类型为矩形的情况下,删除所述二维点阵的最后一行和最后一列以得到包括所述二维点阵的左上角点的第一数组;
12.删除所述二维点阵的最后一行和第一列以得到包括所述二维点阵的右上角点的第二数组;
13.删除所述二维点阵的第一行和第一列以得到包括所述二维点阵的右下角点的第三数组;
14.删除所述二维点阵的第一行和最后一列以得到包括所述二维点阵的左下角点的第四数组;
15.将所述第一数组、第二数组、第三数组以及第四数组按照行列序号一一对应的关系组合以形成矩形数组;
16.连接所述矩形数组中的每个元素内的相邻的点以得到所述网格图案。
17.可选地,所述网格图案生成方法还包括:
18.在所述当前需要绘制的图像类型为菱形的情况下,针对所述二维点阵的奇数行和偶数行中的一者,选取序号为奇数的点,针对所述二维点阵的奇数行和偶数行中的另一者,选取序号为偶数的点,以形成菱形中心数组;
19.对所述二维点阵执行菱形扩展操作以得到菱形扩展二维点阵;
20.以所述菱形中心数组中的每个点为中心,在所述菱形扩展二维点阵中选择与其对应的上、下、左和右方向上相邻的点组成对应的元素;
21.组合每个元素以构成菱形数组;
22.在所述二维点阵中连接所述菱形数组的每个元素内的相邻的点以得到所述网格图案;
23.其中,所述菱形扩展操作包括:
24.在所述二维点阵的第一行前增加一行;
25.在所述二维点阵的第一列前增加一列;
26.在所述二维点阵的最后一行后增加一行;
27.在所述二维点阵的最后一列后增加一列。
28.可选地,所述网格图案生成方法还包括:
29.在所述当前需要绘制的图像类型为菱形的情况下,针对所述二维点阵的奇数行和偶数行中的一者,选取序号为奇数的点,针对所述二维点阵的奇数行和偶数行中的另一者,选取序号为偶数的点,以形成菱形中心数组;
30.删除所述菱形中心数组中位于所述二维点阵边缘的点;
31.以所述菱形中心数组中的每个点为中心,在所述二维点阵中选择与其对应的上、下、左和右方向上相邻的点组成对应的元素;
32.组合每个元素以构成菱形数组;
33.在所述二维点阵中连接所述菱形数组的每个元素内的相邻的点以得到所述网格图案。
34.可选地,所述网格图案生成方法还包括:
35.在所述当前需要绘制的图像类型为三角形的情况下,针对所述二维点阵的奇数行和偶数行中的一者,选取序号为奇数的点,针对所述二维点阵的奇数行和偶数行中的另一者,选取序号为偶数的点,以形成三角形中心数组;
36.对所述二维点阵执行三角形扩展操作以得到三角形扩展二维点阵;
37.以所述三角形中心数组中的每个点为中心,在所述三角形扩展二维点阵中选择与其对应的上、下、左和右方向上相邻的点组成对应的元素;
38.组合每个元素以构成三角形数组;
39.在所述二维点阵中连接所述三角形数组的每个元素内的不相邻的点以得到所述网格图案;
40.其中,所述三角形扩展操作包括:
41.在所述二维点阵的第一行前增加一行;
42.在所述二维点阵的第一列前增加一列;
43.在所述二维点阵的最后一行后增加一行;
44.在所述二维点阵的最后一列后增加一列。
45.可选地,所述网格图案生成方法还包括:
46.在所述当前需要绘制的图像类型为三角形的情况下,针对所述二维点阵的奇数行和偶数行中的一者,选取序号为奇数的点,针对所述二维点阵的奇数行和偶数行中的另一者,选取序号为偶数的点,以形成三角形中心数组;
47.删除所述三角形中心数组中位于所述二维点阵边缘的点;
48.以所述三角形中心数组中的每个点为中心,在所述二维点阵中选择与其对应的上、下、左和右方向上相邻的点组成对应的元素;
49.组合每个元素以构成三角形数组;
50.在所述二维点阵中连接所述三角形数组的每个元素内的不相邻的点以得到所述网格图案。
51.可选地,所述网格图案生成方法还包括:
52.在所述当前需要绘制的图像类型为六边形的情况下,针对所述二维点阵的奇数行和偶数行中的一者,选取序号为6 d的点,针对所述二维点阵的奇数行和偶数行中的另一者,选取序号为6n d 3的点,以形成六边形中心数组,其中,n为0至m之间的整数,m为所述二维点阵的横坐标的长度,d=0、1或2;
53.对所述二维点阵执行六边形扩展操作以得到六边形扩展二维点阵;
54.以所述六边形中心数组中的每个点为中心,在所述六边形扩展二维点阵中选择相邻的点以组成对应的元素;
55.组合每个元素以构成六边形数组;
56.在所述二维点阵中连接所述六边形数组的每个元素内的相邻的点以得到所述网格图案。
57.可选地,所述网格图案生成方法还包括:
58.在所述当前需要绘制的图像类型为六边形的情况下,针对所述二维点阵的奇数行和偶数行中的一者,选取序号为6n d的点,针对所述二维点阵的奇数行和偶数行中的另一者,选取序号为6n d 3的点,以形成六边形中心数组,其中,n为0至m之间的整数,m为所述二维点阵的横坐标的长度,d=0、1或2;
59.删除所述六边形中心数组中位于边缘的点;
60.以删除后的所述六边形中心数组中的每个点为中心,在删除前的所述六边形中心数组中选择相邻的点以组成对应的元素;
61.组合每个元素以构成六边形数组;
62.在所述二维点阵中连接所述六边形数组的每个元素内的相邻的点以得到所述网格图案。
63.可选地,所述网格图案生成方法还包括:
64.在所述当前需要绘制的图像类型为六边形的情况下,对所述二维点阵执行转置操作,针对所述二维点阵的奇数行和偶数行中的一者,选取序号为6n d的点,针对所述二维点阵的奇数行和偶数行中的另一者,选取序号为6n d 3的点,以形成六边形中心数组,其中,n为0至m之间的整数,m为所述二维点阵的横坐标的长度,d=0、1或2;
65.对所述二维点阵执行六边形扩展操作以得到六边形扩展二维点阵;
66.以所述六边形中心数组中的每个点为中心,在所述六边形扩展二维点阵中选择相邻的点以组成对应的元素;
67.组合每个元素以构成六边形数组;
68.在所述二维点阵中连接所述六边形数组的每个元素内的相邻的点以得到所述网格图案。
69.可选地,所述网格图案生成方法还包括:
70.在所述当前需要绘制的图像类型为六边形的情况下,对所述二维点阵执行转置操作,针对所述二维点阵的奇数行和偶数行中的一者,选取序号为6n d的点,针对所述二维点阵的奇数行和偶数行中的另一者,选取序号为6n d 3的点,以形成六边形中心数组,其中,n为0至m之间的整数,m为所述二维点阵的横坐标的长度,d=0、1或2;
71.删除所述六边形中心数组中位于边缘的点;
72.以删除后的所述六边形中心数组中的每个点为中心,在删除前的所述六边形中心数组中选择相邻的点以组成对应的元素;
73.组合每个元素以构成六边形数组;
74.在所述二维点阵中连接所述六边形数组的每个元素内的相邻的点以得到所述网格图案。
75.可选地,所述六边形扩展操作包括:
76.在所述一者为奇数行,所述另一者为偶数行,且所述二维点阵未转置的情况下:
77.在所述二维点阵的第一行前增加两行;
78.在所述二维点阵的最后一行后增加两行;
79.在所述二维点阵的第一列前增加一列;
80.在所述二维点阵的最后一列后增加一列;
81.在所述一者为偶数行,所述另一者为奇数行,且所述二维点阵未转置的情况下的情况下:
82.在所述二维点阵的第一行前增加一行;
83.在所述二维点阵的最后一行后增加一行;
84.在所述二维点阵的第一列前增加两列;
85.在所述二维点阵的最后一列后增加两列;
86.在所述一者为奇数行,所述另一者为偶数行,且所述二维点阵已转置的情况下:
87.在所述二维点阵的第一行前增加一行;
88.在所述二维点阵的最后一行后增加一行;
89.在所述二维点阵的第一列前增加两列;
90.在所述二维点阵的最后一列后增加两列;
91.在所述一者为偶数行,所述另一者为奇数行,且所述二维点阵已转置的情况下:
92.在所述二维点阵的第一行前增加两行;
93.在所述二维点阵的最后一行后增加两行;
94.在所述二维点阵的第一列前增加一列;
95.在所述二维点阵的最后一列后增加一列。
96.通过上述技术方案,本发明提供的基于二维点阵的网格图案生成方法通过在待绘制的曲面上建立坐标系,并结合矩形图案的顶点特点,通过对坐标系中的点阵进行筛选的方法获取每个矩形的顶点,从而构成网格图案。相较于现有技术而言,克服了因依赖图案填充而导致的无法实现无间隙填满的技术问题,扩大了图案绘制方法的应用范围。
97.本发明实施方式的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
98.附图是用来提供对本发明实施方式的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施方式,但并不构成对本发明实施方式的限制。在附图中:
99.图1是根据本发明的一个实施方式的基于二维点阵的网格图案生成方法的流程图;
100.图2是根据本发明的一个实施方式的生成菱形的网格图案的方法的流程图;
101.图3是根据本发明的一个实施方式的生成菱形的网格图案的方法的流程图;
102.图4是根据本发明的一个实施方式的生成三角形的网格图案的方法的流程图;
103.图5是根据本发明的一个实施方式的生成三角形的网格图案的方法的流程图;
104.图6是根据本发明的一个实施方式的生成六边形的网格图案的方法的流程图;
105.图7是根据本发明的一个实施方式的生成六边形的网格图案的方法的流程图;
106.图8是根据本发明的一个实施方式的生成六边形的网格图案的方法的流程图;
107.图9是根据本发明的一个实施方式的生成六边形的网格图案的方法的流程图。
具体实施方式
108.以下结合附图对本发明实施方式的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施方式,并不用于限制本发明实施方式。
109.在本发明实施方式中,在未作相反说明的情况下,使用的方位词如“上、下、顶、底”通常是针对附图所示的方向而言的或者是针对竖直、垂直或重力方向上而言的各部件相互位置关系描述用词。
110.另外,若本发明实施方式中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该
特征。另外,各个实施方式之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
111.如图1所示是根据本发明的一个实施方式的基于二维点阵的网格图案生成方法的流程图。在该图1中,该方法可以包括:
112.在步骤s10中,基于待绘制的客体形成虚拟的四边形画布;
113.在步骤s11中,以四边形画布的一个顶点为原点,在四边形画布上建立二维坐标系以形成二维点阵。
114.在现有技术中,常规的网格图案生成方法是采用图案进行直接填充和渲染。这种方法待绘制的客体为平面时,能够较好的完成图案的填充和渲染。但是,对于三维物体,则无发现进行填充和渲染。因此,在本发明提供的网格图案生成方法中,步骤s10通过基于待绘制的壳体的表面形成一个四边形画布,并进一步通过步骤s11以该四边形画布为基础,建立二维坐标系,从而形成二维点阵。至于如何建立该二维坐标系,并进一步如何形成二维点阵,则可以是本领域人员所知的多种方式。在本发明的一个优选示例中,该方式可以是例如首先以该四边形画布的一个顶点为原点,相邻的两个顶点为两个坐标轴(u轴和v轴)的终点,建立该二维坐标系。其中,u轴上可以具有m个点,v轴上具有n个点。然后,在原点和终点之间通过预设的坐标点确定方法选取多个坐标点,并将每个坐标点作为二维点阵中的每个点,从而形成该二维点阵。其形成的二维点阵可以是如下所示:
115.对于u轴方向,每个点可以表示为:
116.第1行:[u1,u2,...,um]
[0117]
第2行:[u1,u2,...,um]
[0118]
第3行:[u1,u2,...,um]
[0119]

[0120]
第n列:[u1,u2,...,um],且每列有m个点。
[0121]
而对于v轴方向,每个点可以表示为:
[0122]
第1行:[v1,v1,...,v1]
[0123]
第2行:[v2,v2,...,v2]
[0124]
第3行:[v3,v3,...,v3]
[0125]

[0126]
第m行:[vn,vn,...,vn],且每行有m个点。
[0127]
至于每个点之间的距离,则可以坐标点确定方法来确定。对于该坐标点确定方法,依据最终形成的图案的不同,该坐标点确定方法也可以是多种类型。
[0128]
在本发明的一个示例中,如果最终形成的图案为均匀分布,该坐标点确定方法则可以是设置相邻的两个点的间距相等。那么所形成的二维点阵可以是如下所示:
[0129]
对于u轴方向,每个点可以表示为:
[0130]
第1行:
[0131]
第2行:
[0132]
第3行:
[0133]

[0134]
第n行:
[0135]
相对应地,v轴方向上的坐标点阵可以表示为:
[0136]
第1行:
[0137]
第2行:
[0138]
第3行:
[0139]

[0140]
第m行:
[0141]
在需要得到渐变特性的网格图案的情况下,在生成的二维点阵中,相邻的两个点的间距则需要逐渐变化。因此,该坐标点确定方法可以根据公式(1)至公式(4)来确定第x行第y个点的坐标:
[0142][0143][0144]
x>1,y>1,
ꢀꢀ
(1)
[0145][0146][0147]
u=0,v=0,x=1,y=1,(4)
[0148]
其中,u为二维点阵中的点的u轴的坐标,v为二维点阵中的点的v轴的坐标,j为u轴方向上的变化率,k为v轴方向上的变化率。
[0149]
需要得到随机变化的网格图案的情况下,在生成的二维点阵中,相邻的两个点的间距则需要产生随机的变化。因此,该坐标点确定方法可以根据公式(5)至公式(8)来确定二维点阵中的第x行第y个点的坐标:
[0150][0151][0152]
x>1,y>1,
ꢀꢀ
(5)
[0153][0154]
v=0,x=1,y>1,
ꢀꢀ
(6)
[0155][0156]
u=0,x>1,y=1,
ꢀꢀ
(7)
[0157]
u=0,v=0,x=1,y=1,
ꢀꢀꢀ
(8)
[0158]
其中,randomu1为点(u1,v1)在u轴方向上的坐标,其余的例如random
u2
、random
u3
等同理,故此处不再赘述。random
v1
为点(u1,v1)在v轴方向上的坐标,其余的例如random
v2
、random
v3
等同理,故此处不再赘述。
[0159]
在需要得到较为复杂的平滑,但变化率不唯一的疏密变化的网格图案的情况下,在生成的二维点阵中,相邻的两个点的间距则需要按照某根在xy平面内的驱动曲线的变化规律来发生变化。因此,该坐标点确定方法可以根据公式(9)至公式(12)来确定二维点阵中的第i行第j个点的坐标:
[0160][0161][0162]
x>1,y>1,
ꢀꢀꢀ
(9)
[0163][0164]
v=0,x=1,y>1,
ꢀꢀ
(10)
[0165][0166]
u=0,x>1,y=1, (11)
[0167]
u=0,v=0,x=1,y=1, (12)
[0168]
其中,y
u1
为u向驱动曲线上平均分布的(m-1)个点中,第1个点的y坐标;y
u2
为u向驱动曲线上平均分布的(m-1)个点中,第2个点的y坐标;以此类推。y
umin
为这一组(m-1)个y坐标中的最小值。
[0169]
其中,y
v1
为v向驱动曲线上平均分布的(n-1)个点中,第1个点的y坐标;y
v2
为v向驱动曲线上平均分布的(n-1)个点中,第2个点的y坐标;以此类推。y
vmin
为这一组(n-1)个y坐标中的最小值。
[0170]
在步骤s12中,确定当前需要绘制的图形类型。
[0171]
在步骤s13中,在当前需要绘制的图像类型为矩形的情况下,删除二维点阵的最后一行和最后一列以得到包括二维点阵的左上角点的第一数组;
[0172]
在步骤s14中,删除二维点阵的最后一行和第一列以得到包括二维点阵的右上角点的第二数组;
[0173]
在步骤s15中,删除二维点阵的第一行和第一列以得到包括二维点阵的右下角点的第三数组;
[0174]
在步骤s16中,删除二维点阵的第一行和最后一列以得到包括二维点阵的左下角点的第四数组;
[0175]
在步骤s17中,将第一数组、第二数组、第三数组以及第四数组按照行列序号一一对应的关系组合以形成矩形数组;
[0176]
在步骤s18中,连接矩形数组中的每个元素内的相邻的点以得到网格图案。
[0177]
基于如图2中所示出的方法,以每个数组的第一行、第一列的点为例,步骤s13得到的第一行、第一列的点的坐标为(0,0),步骤s14得到的第一行、第一列的点的坐标为(1,0),步骤s15得到的第一行、第一列的点的坐标为(1,1),步骤s16得到的第一行、第一列的点的坐标为(0,1)。那么在经过步骤s17组合后,四个点构成了一个矩形的四个顶点。经过步骤s18将该四个顶点连接,从而得到一个矩形图案。
[0178]
在该实施方式中,如果需要绘制的图像类型为菱形,那么该网格图案生成方法则可以包括如图2中所示出的步骤。在该图2中,该网格图案生成方法可以包括:
[0179]
在步骤s20中,在当前需要绘制的图像类型为菱形的情况下,针对二维点阵的奇数行和偶数行中的一者,选取序号为奇数的点,针对二维点阵的奇数行和偶数行中的另一者,选取序号为偶数的点,以形成菱形中心数组;
[0180]
在步骤s21中,对二维点阵执行菱形扩展操作以得到菱形扩展二维点阵。其中,该菱形扩展操作可以是例如在二维点阵的第一行前增加一行;在二维点阵的第一列前增加一列;在二维点阵的最后一行后增加一行;在二维点阵的最后一列后增加一列。
[0181]
在步骤s22中,以菱形中心数组中的每个点为中心,在菱形扩展二维点阵中选择与其对应的上、下、左和右方向上相邻的点组成对应的元素;
[0182]
在步骤s23中,组合每个元素以构成菱形数组;
[0183]
在步骤s24中,在二维点阵中连接菱形数组的每个元素内的相邻的点以得到网格图案;
[0184]
基于该如图3所示的方法,以菱形中心数组的第一行、第一列的点为例,该点的坐标为(0,0)。而二维点阵由于经过了菱形扩展二维点阵操作,使得扩展出的点阵包括围绕于该点(0,0)周围的点(-1,0)、点(0,-1)、点(0,1)和点(1,0)。该点(-1,0)、点(0,-1)、点(0,1)和点(1,0)可以组成步骤s23的菱形数组中的一个元素。步骤s24则是针对每个元素中的四个点,将相邻的点连接(不交叉连接),从而构成了菱形的网格图案中的一个菱形网格。同理,则可以得到整个菱形的网格图案。
[0185]
在该实施方式中,如果需要绘制的图像类型为菱形,该网格图案生成方法还可以包括如图3中所示出的步骤。在该图3中,该网格图案生成方法可以包括:
[0186]
在步骤s30中,在当前需要绘制的图像类型为菱形的情况下,针对二维点阵的奇数行和偶数行中的一者,选取序号为奇数的点,针对二维点阵的奇数行和偶数行中的另一者,选取序号为偶数的点,以形成菱形中心数组;
[0187]
在步骤s31中,删除菱形中心数组中位于二维点阵边缘的点;
[0188]
在步骤s32中,以菱形中心数组中的每个点为中心,在二维点阵中选择与其对应的上、下、左和右方向上相邻的点组成对应的元素;
[0189]
在步骤s33中,组合每个元素以构成菱形数组;
[0190]
在步骤s34中,在二维点阵中连接菱形数组的每个元素内的相邻的点以得到网格图案。
[0191]
在该实施方式中,由于矩形的网格图案本身与二维点阵的各个点的布局相似,在生成的网格图案中没有斜线,因此并不需要考虑边缘的点是否足够的情况。但是,在生成菱形数组时,由于菱形本身由四条斜线边组成,因此在菱形的网格图案中必然存在斜线。由于斜线必然横跨至少两行或两列的点,因此在绘制时需要考虑边缘的点是否足够。故在图2中,发明人通过步骤s21对二维点阵进行扩展,对二位点阵边缘可能缺少的点进行预先的补充,从而便于后续的绘制。图3虽然也是用于绘制菱形的网格图案的方法,但与图2中示出的方法的不同之处在于,其采用的是预先删除菱形数组中位于边缘的点。事实上,在绘制时网格图案时,可能导致二维点阵边缘的点不充足的原因正是菱形数组中的边缘的点。因此,在步骤s31中,直接将该菱形数组中的边缘的点删除就能够很好地避免上述问题的出现。
[0192]
在该实施方式中,如果需要绘制的图像类型为三角形,该网格图案生成方法还可以包括如图4中所示出的步骤。在该图4中,该网格图案生成方法可以包括:
[0193]
在步骤s40中,在当前需要绘制的图像类型为三角形的情况下,针对二维点阵的奇数行和偶数行中的一者,选取序号为奇数的点,针对二维点阵的奇数行和偶数行中的另一者,选取序号为偶数的点,以形成三角形中心数组;
[0194]
在步骤s41中,对二维点阵执行三角形扩展操作以得到三角形扩展二维点阵。其中,三角形扩展操作包括:在二维点阵的第一行前增加一行;在二维点阵的第一列前增加一列;在二维点阵的最后一行后增加一行;在二维点阵的最后一列后增加一列。
[0195]
在步骤s42中,以三角形中心数组中的每个点为中心,在三角形扩展二维点阵中选择与其对应的上、下、左和右方向上相邻的点组成对应的元素;
[0196]
在步骤s43中,组合每个元素以构成三角形数组;
[0197]
在步骤s44中,在二维点阵中连接三角形数组的每个元素内的至少一对对角的点以得到网格图案。
[0198]
基于该如图4所示的方法,以三角形中心数组的第一行、第一列的点为例,该点的坐标为(0,0)。而二维点阵由于经过了三角形扩展二维点阵操作,使得扩展出的点阵包括围绕于该点(0,0)周围的点(-1,0)、点(0,-1)、点(0,1)和点(1,0)。该点(-1,0)、点(0,-1)、点(0,1)和点(1,0)可以组成步骤s43的三角形数组中的一个元素。步骤s44则是针对每个元素中的四个点,将至少一对对角的点连接(交叉连接),从而构成了三角形的网格图案中的两个三角形网格。同理,则可以得到整个三角形的网格图案。
[0199]
在该实施方式中,如果需要绘制的图像类型为三角形,该网格图案生成方法还可以包括如图5中所示出的步骤。在该图5中,该网格图案生成方法可以包括:
[0200]
在步骤s50中,针对二维点阵的奇数行和偶数行中的一者,选取序号为奇数的点,针对二维点阵的奇数行和偶数行中的另一者,选取序号为偶数的点,以形成三角形中心数组;
[0201]
在步骤s51中,删除三角形中心数组中位于二维点阵边缘的点;
[0202]
在步骤s52中,以三角形中心数组中的每个点为中心,在二维点阵中选择与其对应的上、下、左和右方向上相邻的点组成对应的元素;
[0203]
在步骤s53中,组合每个元素以构成三角形数组;
[0204]
在步骤s54中,在二维点阵中连接三角形数组的每个元素内的至少一对对角的点以得到网格图案。
[0205]
在该实施方式中,由于矩形的网格图案本身与二维点阵的各个点的布局相似,在生成的网格图案中没有斜线,因此并不需要考虑边缘的点是否足够的情况。但是,在生成三角形数组时,由于三角形本身由至少一条斜线边组成,因此在三角形的网格图案中必然存在斜线。由于斜线必然横跨至少两行或两列的点,因此在绘制时需要考虑边缘的点是否足够。故在图4中,发明人通过步骤s41对二维点阵进行扩展,对二位点阵边缘可能缺少的点进行预先的补充,从而便于后续的绘制。图5虽然也是用于绘制三角形的网格图案的方法,但与图4中示出的方法的不同之处在于,其采用的是预先删除三角形数组中位于边缘的点。事实上,在绘制时网格图案时,可能导致二维点阵边缘的点不充足的原因正是三角形数组中的边缘的点。因此,在步骤s51中,直接将该三角形数组中的边缘的点删除就能够很好地避免上述问题的出现。
[0206]
在该实施方式中,如果需要绘制的图像类型为六边形,该网格图案生成方法还可以包括如图6中所示出的步骤。在该图6中,该网格图案生成方法可以包括:
[0207]
在步骤s60中,在当前需要绘制的图像类型为六边形的情况下,针对二维点阵的奇数行和偶数行中的一者,选取序号为6n d的点,针对二维点阵的奇数行和偶数行中的另一者,选取序号为6n d 3的点,以形成六边形中心数组,其中,n为0至m之间的整数,m为二维点阵的横坐标的长度,d=0、1或2;
[0208]
在步骤s61中,对二维点阵执行六边形扩展操作以得到六边形扩展二维点阵。其中,该六边形扩展操作可以包括:在奇数行和偶数行中的一者为奇数行,另一者为偶数行的情况下,在二维点阵的第一行前增加两行,在二维点阵的最后一行后增加两行,在二维点阵的第一列前增加一列,在二维点阵的最后一列后增加一列;相反地,在奇数行和偶数行中的一者为偶数行,另一者为奇数行的情况下,在二维点阵的第一行前增加一行,在二维点阵的最后一行后增加一行,在二维点阵的第一列前增加两列,在二维点阵的最后一列后增加两列。
[0209]
在步骤s62中,以六边形中心数组中的每个点为中心,在六边形扩展二维点阵中选择相邻的点以组成对应的元素;
[0210]
在步骤s63中,组合每个元素以构成六边形数组;
[0211]
在步骤s64中,在二维点阵中连接六边形数组的每个元素内的相邻的点以得到网格图案。
[0212]
基于该如图6所示的方法,以六边形中心数组的第一行、第一列的点为例,该点的坐标为(0,0)。而二维点阵由于经过了六边形扩展二维点阵操作,使得扩展出的点阵包括围绕于该点(0,0)周围的点(-2,0)、点(-1,-1)、点(1,-1)、点(2,0)、点(1,1)以及点(1,-1)。该点(-2,0)、点(-1,-1)、点(1,-1)、点(2,0)、点(1,1)以及点(1,-1)可以组成步骤s63的六边形中心数组中的一个元素。步骤s64则是针对每个元素中的六个点,将该六个点中相邻的点连接(非交叉连接),从而构成了六边形的网格图案中的一个六边形网格。同理,则可以得到整个六边形的网格图案。
[0213]
在该实施方式中,如果需要绘制的图像类型为六边形,该网格图案生成方法还可
以包括如图7中所示出的步骤。在该图7中,该网格图案生成方法可以包括:
[0214]
在步骤s70中,在当前需要绘制的图像类型为六边形的情况下,针对二维点阵的奇数行和偶数行中的一者,选取序号为6n d的点,针对二维点阵的奇数行和偶数行中的另一者,选取序号为6n d 3的点,以形成六边形中心数组,其中,n为0至m之间的整数,m为二维点阵的横坐标的长度,d=0、1或2;
[0215]
在步骤s71中,删除六边形中心数组中位于边缘的点;
[0216]
在步骤s72中,以删除后的六边形中心数组中的每个点为中心,在删除前的六边形中心数组中选择相邻的点以组成对应的元素;
[0217]
在步骤s73中,组合每个元素以构成六边形数组;
[0218]
在步骤s74中,在二维点阵中连接六边形数组的每个元素内的相邻的点以得到网格图案。
[0219]
在该实施方式中,由于矩形的网格图案本身与二维点阵的各个点的布局相似,在生成的网格图案中没有斜线,因此并不需要考虑边缘的点是否足够的情况。但是,在生成六边形数组时,由于六边形本身由至少四条斜线边组成,因此在六边形的网格图案中必然存在斜线。由于斜线必然横跨至少两行或两列的点,因此在绘制时需要考虑边缘的点是否足够。故在图6中,发明人通过步骤s61对二维点阵进行扩展,对二位点阵边缘可能缺少的点进行预先的补充,从而便于后续的绘制。图7虽然也是用于绘制六边形的网格图案的方法,但与图6中示出的方法的不同之处在于,其采用的是预先删除六边形数组中位于边缘的点。事实上,在绘制时网格图案时,可能导致二维点阵边缘的点不充足的原因正是六边形数组中的边缘的点。因此,在步骤s71中,直接将该六边形数组中的边缘的点删除就能够很好地避免上述问题的出现。
[0220]
在该实施方式中,如果需要绘制的图像类型为六边形,该网格图案生成方法还可以包括如图8中所示出的步骤。在该图8中,该网格图案生成方法可以包括:
[0221]
在步骤s80中,在当前需要绘制的图像类型为六边形的情况下,对二维点阵执行转置操作,针对二维点阵的奇数行和偶数行中的一者,选取序号为6n d的点,针对二维点阵的奇数行和偶数行中的另一者,选取序号为6n d 3的点,以形成六边形中心数组,其中,n为0至m之间的整数,m为二维点阵的横坐标的长度,d=0、1或2;
[0222]
在步骤s81中,对二维点阵执行六边形扩展操作以得到六边形扩展二维点阵。其中,该六边形扩展操作可以包括:在奇数行和偶数行中的一者为奇数行,另一者为偶数行的情况下,在二维点阵的第一行前增加一行,在二维点阵的最后一行后增加一行,在二维点阵的第一列前增加两列,在二维点阵的最后一列后增加两列,在奇数行和偶数行中的一者为偶数行;另一者为奇数行的情况下,在二维点阵的第一行前增加两行,在二维点阵的最后一行后增加两行,在二维点阵的第一列前增加一列,在二维点阵的最后一列后增加一列。
[0223]
在步骤s82中,以六边形中心数组中的每个点为中心,在六边形扩展二维点阵中选择相邻的点以组成对应的元素;
[0224]
在步骤s83中,组合每个元素以构成六边形数组;
[0225]
在步骤s84中,在二维点阵中连接六边形数组的每个元素内的相邻的点以得到网格图案。
[0226]
基于该如图8所示的方法,以六边形中心数组的第一行、第一列的点为例,该点的
坐标为(0,0)。而二维点阵由于经过了六边形扩展二维点阵操作,使得扩展出的点阵包括围绕于该点(0,0)周围的点(0,-2)、点(-1,-1)、点(1,-1)、点(0,2)、点(1,1)以及点(1,-1)。该点(0,-2)、点(-1,-1)、点(1,-1)、点(0,2)、点(1,1)以及点(1,-1)可以组成步骤s83的六边形中心数组中的一个元素。步骤s84则是针对每个元素中的六个点,将该六个点中相邻的点连接(非交叉连接),从而构成了六边形的网格图案中的一个六边形网格。同理,则可以得到整个六边形的网格图案。
[0227]
在该实施方式中,如果需要绘制的图像类型为六边形,该网格图案生成方法还可以包括如图9中所示出的步骤。在该图9中,该网格图案生成方法可以包括:
[0228]
在步骤s90中,在当前需要绘制的图像类型为六边形的情况下,对二维点阵执行转置操作,针对二维点阵的奇数行和偶数行中的一者,选取序号为6n d的点,针对二维点阵的奇数行和偶数行中的另一者,选取序号为6n d 3的点,以形成六边形中心数组,其中,n为0至m之间的整数,m为二维点阵的横坐标的长度,d=0、1或2;
[0229]
在步骤s91中,删除六边形中心数组中位于边缘的点;
[0230]
在步骤s92中,以删除后的六边形中心数组中的每个点为中心,在删除前的六边形中心数组中选择相邻的点以组成对应的元素;
[0231]
在步骤s93中,组合每个元素以构成六边形数组;
[0232]
在步骤s94中,在二维点阵中连接六边形数组的每个元素内的相邻的点以得到网格图案。
[0233]
在该实施方式中,由于矩形的网格图案本身与二维点阵的各个点的布局相似,在生成的网格图案中没有斜线,因此并不需要考虑边缘的点是否足够的情况。但是,在生成六边形数组时,由于六边形本身由至少四条斜线边组成,因此在六边形的网格图案中必然存在斜线。由于斜线必然横跨至少两行或两列的点,因此在绘制时需要考虑边缘的点是否足够。故在图8中,发明人首先在步骤s80中对二维点阵进行转置操作,再通过步骤s81对二维点阵进行扩展,对二位点阵边缘可能缺少的点进行预先的补充,从而便于后续的绘制。图9虽然也是用于绘制六边形的网格图案的方法,但与图8中示出的方法的不同之处在于,其采用的是预先删除六边形数组中位于边缘的点。事实上,在绘制时网格图案时,可能导致二维点阵边缘的点不充足的原因正是六边形数组中的边缘的点。因此,在步骤s91中,直接将该六边形数组中的边缘的点删除就能够很好地避免上述问题的出现。
[0234]
此外,在本发明的一个实施方式中,如果需要对如图1至图9所生成的网格图案进行缩放,则可以是将二维点阵中的坐标按照比例放大或缩小,再将对应的数组的坐标按照比例重新放大或缩小,最后通过原本相似的方法,将数组与二维点阵进行组合,从而得到缩放后的网格图案。
[0235]
通过上述技术方案,本发明提供的基于二维点阵的网格图案生成方法通过在待绘制的曲面上建立坐标系,并结合矩形图案的顶点特点,通过对坐标系中的点阵进行筛选的方法获取每个矩形的顶点,从而构成网格图案。相较于现有技术而言,克服了因依赖图案填充而导致的无法实现无间隙填满的技术问题,扩大了图案绘制方法的应用范围。以上结合附图详细描述了本发明例的可选实施方式,但是,本发明实施方式并不限于上述实施方式中的具体细节,在本发明实施方式的技术构思范围内,可以对本发明实施方式的技术方案进行多种简单变型,这些简单变型均属于本发明实施方式的保护范围。
[0236]
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施方式对各种可能的组合方式不再另行说明。
[0237]
本领域技术人员可以理解实现上述实施方式方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个可以是单片机,芯片等或处理器(processor)执行本技术各个实施方式所述网格图案生成方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0238]
此外,本发明实施方式的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施方式的思想,其同样应当视为本发明实施方式所公开的内容。
再多了解一些

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

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

相关文献