这篇文章介绍了一种生成算法
凯尔特结模式 - 布置在网格中的装饰性结,链节和辫子,如下图所示:
如果您不希望阅读这些内容的生成方式,而是开始尝试创建上述模式,请尝试使用
编辑 和
随机结模式发生器 我已经张贴在我的
的github 页数.
我尝试了各种生成这些模式的策略(例如,
使用 瓷砖),但此处所述的方法与我喜欢手工绘制的方法最为接近,就像艾丹·米恩(Aidan Meehan)在书中所描述的那样,
凯尔特人设计:打结-抄写员的秘密方法。 此处提供的变体旨在建议如何根据Meehan的书中技术的简化版本编写程序来生成这些模式。
结状图案由代表线或弦的股线以及编织股线之间的间隙组成。下述技术实际上涉及到绘制间隙,使股线从间隙之间的负空间中出来。本质上,绘制点网格,并在相邻点之间有选择地绘制线-这些线成为线束之间的间隙。应用了附加规则以连接点以创建编织效果,并且将点替换为多边形以 创造出更具风格化的效果。
1.定义主网格点
使用一组在水平和垂直方向上以一个单位距离设置的“主要”点,将结状图案布置在正方形坐标系上。我们说(0,0)是网格的左上角,
x 方向是正确和积极的
y direction is down. 主网格的尺寸必须为奇数(两个像素中的点总数必须为奇数)
x 和
y 指示)。因为我们从左上角的(0,0)开始,所以右上角的点(
x,0)必须具有x偶数(在下面的示例中为4),并且左下角的点(0,
y)必须具有y偶数(在下面的示例中为6)。
主网格
(注意:在Meehan的帐户中,事物的分层略有不同,因此我们称其为主网格称为三级网格。)
2.识别辅助网格点
网格上的某些点很特殊-它们构成了辅助网格。特殊的辅助网格点是那些
x 和
y 值是偶数,或者都是奇数。
二次电网
在下面的步骤4中,辅助网格指向
x 和
y 甚至被称为
偶数节点,以及同时具有
x 和
y 奇数将称为
奇数节点。需要确保主网格具有奇数维(步骤1),以确保图案的角都是次要点。
3.在节点周围绘制四边形
每个节点都将成为节点图案中的一个间隙-间隙的基本形状是四边形,其顶点位于每个节点的上方,下方和左侧和右侧的1/4单位。
基本节点多边形
为节点绘制所有多边形后,我们得到一个“菱形”网格,如下所示:
为之绘制的节点多边形
二次网格点
4.从节点多边形顶点延伸线
为了创建编织效果,我们从每个节点多边形的顶点延伸线
对所有节点执行此操作将创建如下图像。
从节点延伸的线
多边形顶点
如果交换奇数节点和偶数节点的规则,则最终会得到正确的“相反”编织:穿过的股反而越过了,反之亦然。
5. 放置障碍物,下降线
在上图中,简单的编织图案似乎从侧面延伸。为了为图案创建边缘边界,并创建更多有趣的曲折,我们遵循一些绘制边界的规则。
边界规则1:只要不违反规则2,边界就可以连接任意两个非对角相邻的节点(第二点)。边界线段的中点将是主要点。
边界规则2:一个主要点不能超过一个边界。
下面的示例显示了沿着图像边缘绘制的边界以及一些内部边界。
法律边界示例,显示
主要和次要点
(节点多边形被隐藏)
现在,我们已经介绍了边界,我们将改进如何绘制从节点中绘制的线(调整步骤4):
节点线规则:仅在节点的顶点没有边界的情况下才从节点顶点绘制一条线。
应用节点线规则并绘制多边形(并删除主网格点),我们得到的图像如下图所示,其中编织遵循边界-出现的股线(白色)似乎从边缘反弹,并且扭转以避免内部边界。
节点多边形,边界和线
6.细化节点多边形
我们可以应用一些样式规则以使图案看起来更平滑-对原始节点多边形的这些更改(第3步)将基于节点附近是否存在边界。
节点样式规则:截断(切掉)边界附近的节点多边形的顶点。
下面是与上面相同的模式,但是节点多边形遵循节点样式规则。通过查看图像边缘附近的节点,尤其是角节点,可以最清楚地看到规则的效果。
模式使用截断
节点多边形
可以对如何绘制节点和线进行进一步调整,以创建更平滑的结型。我做了一些实验,但没有取得很好的结果。这是上面相同模式的一个示例,用于调整节点多边形和线宽:
应用的样式略有不同
结型
我希望您喜欢玩这个游戏-自己执行上述过程或玩这个游戏
版.