《Zen Trails》简易绘图规律

steam上的游戏《Zen trails》(暂译为禅径)是一款充满几何美感的绘图游戏。

其绘图规则为:
由某一点作为起点,给出一个线段。以起点为圆心,线段长度为半径,开始旋转画圆,记录下另一端点的轨迹。
该端点也可以作为新的圆心,随着原图形一起运动。
就像地心说的本轮、均轮一样。
可以自由搭配,调整参数。

这是游戏中自带的实例

游戏中有自带的引导过程,不过都是英文,没有中文版本。不过英语水平不需要太高也能学会操作。不过顺便插一嘴,选中点之后按C可以复制整个子树,复制中可以按R进行90°的旋转,非常有用,而这个操作教程中并没有提及。

要想画出想要的图形,更重要的是创意和一些绘图规律。教程中给出了一些常用的绘图技巧,比如画直线,画花瓣状,但是远远不够。

接下来是我自己整理的一些简单的基础规律。不进行数学证明。

画法不唯一。这里只是进行了一些比较容易掌握的画图技巧。有时候随便设置参数,也能画出相同效果。

首先给出一些概念定义,方便我表达,也方便你理解。

示意图

我将①节点称为,挂在它下方的所有次级节点都称为它的叶子,比如②所指的两个节点。

红框内的是初始的,世界坐标固定不动的原点。原点称为0级节点,其叶子称为1级节点,1级节点的叶子称为2级节点,以此类推。

当我说“速度比为a : b : c : d : ……”时,指的是从1级节点开始,顺次向后的各层级节点的速度比。


规律开始。只考虑使用至多2级节点的情况。

1、绘制同心圆,或实现“包边”效果
将下级节点的速度设置为0即可。即节点不自己转动,完全跟从上级节点运动。
可用于绘制同心圆。
对于极短的下级节点,将速度设为0,可以实现如下的“包边”效果。

包边。速度为0,长度很短,初始位置与上级节点的杆子垂直

2、绘制N边形
使用两个层级节点,速度比置为1 : -N,同时调整两杆长度以达到较好的观感。
此法可以通过调整两杆长度来绘制不同的图形,但其本质是相同的,即顺次向内卷曲绘制。

调整杆长度可以减轻或加重六边形顶点处的卷曲视感

3、绘制椭圆
使用两个层级节点,速度比置为1 : -2,调整两杆长度和初始位置来画不同的椭圆。
此法以椭圆的长轴与短轴确定形状。
椭圆长轴=两杆长之和
椭圆短轴=两杆长之差的绝对值

椭圆

特别地,
椭圆短轴=两杆长之差的绝对值=0,也就是两个杆长相等时,椭圆就只剩一个长轴了,也就是绘制直线段
此时直线段的方向为:2级节点和原点的连线,长度为两杆长之和,且原点平分该线段

直线段

4、绘制N角星
首先我们来定义一下什么是角星。当然这是我个人定义的,没有采用严格的数学定义(如果有的话)。

角星,星状图形,从某一星尖点开始,向另一星尖点画直线段,能够一笔画完的图形叫做角星。其中,各星尖点共圆,且平分圆周,除去角后可得一个正多边形。参考“五角星”。

相对应的,芒星,星状图形,由多个完全相同的正多边形,中心重叠,顺次旋转一定角度后形成的图形,各星尖点共圆,且平分圆周。参考“六芒星”。

最低角数量的角星为五角星。可以肯定没有六角星,不确定更高数量的角星一定存在。
最低角数量的芒星为六芒星。可以有奇数芒星,如三个五边形构成十五芒星。

N角星绘制方法:以下公式均使用两个层级节点

初级公式

速度比置为1:-N/2
其中要保证N/2的结果不为整数。因为如果为整数,结果将是N/2边形。


进阶版公式:该公式可以一定程度上调整角星图形,使得大小更容易控制,且使得绘制高数量角星时不会太快而出现不够平滑的现象。

速度比置为1:-N/m
其中m为2的次幂,同样要保证N/m的结果不为整数,且要保证N/m结果大于2

要注意,当N/m不大于2时,或者说所有速度比为1:k的时候,k不大于2时,会呈现花朵状。也很漂亮。此时花朵多为复瓣,瓣数为N。


高手公式:较为复杂的公式,但是可以更好地调整形状。不够万能,有一定缺陷。为观察归纳的结果,暂时没有试出例外。

速度比置为:Q:-K
Q:取一位小数,数字处于(0,1)的开区间内,且不为0.1。如0.3,0.2,0.7等等。
K:取一位小数,数字处于(1,10)的开区间内,且不为Q的整数倍(这也是为什么Q不能为0.1的原因。K取一位小数的话,必定是0.1的整数倍),否则绘制的将是边形,边数为K/Q(是几倍就画几边形)。

之所以取一位小数,是为了防止速度过大(比如99角星)造成的绘制结果不平滑,于是进行了10倍放缩。只归纳了100角以内的。

要画出N角星,则K取N/10,同时10倍的Q(就是去掉小数点)与10倍的K(也就是N)不可有除1外的公因数

例如,要画出22角星,则K取2.2,Q不可以取0.2、0.4、0.6、0.8,因为2、4、6、8都与22有除1外的公因数。故Q只能取0.3、0.5、0.7和0.9。其中,Q越大,第二杆就可以适当地更长一点,角就越长,越尖细

速度比为0.9:-2.2绘制的22角星

一旦10Q与10K有了公因数,那么就应当约分到最简。此时10K约分后的结果即为绘制图形的角数。若10Q被约分成了1,那么将绘制边形

比如,绘制22角星,K取2.2,而Q取了0.6,那么结果将等同于K取1.1,Q取0.3(同时除以2),结果将是11角星。

速度比为0.6:-2.2,将会等同于0.3:-1.1,绘制11角星

此外,Q,也就是1级节点的速度对形状有一定影响。

现在已知:

Q小于K/2时,第一杆长度大于第二杆才能画出尖锐的角尖,否则画出花瓣状。
Q大于K/2时,第一杆长度则应当小于第二杆,才能画出尖锐角尖,否则为花瓣。

当第一杆长度大于第二杆时,从一个星尖点(或花瓣尖)向另一个星尖点(或花瓣尖),一笔连过去的那条线上,会夹有(10Q-1)个星尖或花瓣
当第一杆长度小于第二杆时,相应位置则会夹有(10K-10Q-1)个星尖或花瓣

如下图,10Q=2,那么①和②这两个一笔连过去的线上,存在有1个星尖。
而上图Q取0.3的11角星,相同位置存在3-1=2个星尖;Q取0.9的22角星,对应地存在9-1=8个星尖。


速度比为0.2:-1.1绘制的11角星

如下图,0.8大于1.3/2,要画出尖角则需要第二杆长于第一杆,且一笔连过去的线上,存在有13-8-1=4个星尖

速度比为0.8:-1.3绘制的13角星

5、绘制N芒星
只需绘制数个完全相同的边形即可,同时调整其初始位置。
K个边形则1级节点间夹角(360°/K)即可。
数个2级节点可以公用同一个1级节点,夹角即为数个2级节点间的夹角,度数同上。

由3个四边形组成的12芒星

6、中心放缩相似图形
在只使用两个层级节点时效果最佳。层级越多越混乱。
速度比设置为:A:B:-B:B。此时,速度为B的节点将会绘制相似图形。可以通过调整杆长来调整相似比和弯曲程度。

放缩花朵,速度比为1:5:-5:5
放缩五边形,速度比为1:-5:5:-5

7、绘制两个相同图形,并修改位置

完整的表述应当是这样的:

以一个绝对静止的点,或者由本条定律作用下产生的从动的相对静止点为起点,向后延伸出3个层级的节点。当这3个层级的节点速度比a:b:c,满足a+b+c=0时,第3层级点跟随第2层级点运动,并与第2层级点保持世界视角下的相对静止,也就是第3层级点跟随第2层级点,绘制相同的图形

如图

例如上图,原点为绝对静止点,由此延伸出①、②、③三个节点,且速度比为1:-2:1,和为0。则②和③保持相对静止,绘制出两个完全一样的椭圆。

③为此法产生的从动的相对静止点,向后延伸出④、⑤、⑥三个节点,速度比为1:-2:1,和为0。则⑤和⑥也保持相对静止,绘出椭圆。

改变

其余均不变,将④、⑤、⑥三个节点,速度比改为-2:1:1,和为0。则⑤和⑥仍然相对静止,绘出两个完全一致的图形。

该效果同步绘制出完全一致的图形,包括方向、大小、形状等都相同,可以用于平移、复制图形

8、更普适的绘制两个相同图形,并修改位置的方法

完整的表述如下:

以一个绝对静止的点,或者由本条定律作用下产生的从动的相对静止点为起点,向后延伸出n个层级的节点。当这n个层级的节点速度比a:b:c:……,满足:
a+b+c+……=0
时,最末2个层级点保持世界视角下的相对静止,且最末层级点为从动点
也就是最后两个节点同步地绘制相同的图形

它具有包含性:在延伸出的n个层级节点中,若前k个层级节点速度比之和为0,则前k个层级点也满足该定律。即第k节点跟随第k-1节点从动,并相对静止。

比如,从原点延伸5个点,速度依次为:1,-2,3,-4,2,和为0。则第5点跟随第4点相对静止移动。

若延伸7个点,速度依次为:1,-2,3,-4,2,2,-2,和为0,前5点速度和也为0。则第5点跟随第4点相对静止移动,第7点跟随第6点相对静止移动。但第6点和第5点无相关关系。

这个技巧很有用。当你调试出一个非常棒的图形,想要它原样复制多份,连方向都不改变时,只需要再添加一个节点,保证这个节点追溯到原点,所经历的所有节点的速度和为0即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342