本文已参与掘金创作者训练营第三期「高产更文」赛道,详情查看:掘力计划|创作者训练营第三期正在进行,「写」出个人影响力。
栗子4 —— 拉链
在这个例子中,我们将编写一个脚本来帮助我们快速绘制拉链!
前面的例子介绍了方波(square)函数。这里我们将使用一个类似的正弦(sin)函数,它有两个参数: 采样函数的距离和波峰的厚度。你可以在下面预览这个功能。
这一次,我们想使用这个函数的结果来替换笔的位置,而不是修改它的压力。为此,我们将使用预定义的输入变量nx和ny。它俩是沿着笔划的当前位置的法向量 (x,y) 分量。如果你不熟悉向量,每个分量代表沿一个轴的置换偏移(displacement)。我们可以用这个来将曲线上的当前位置直接进行偏移。
以下是脚本代码:
offset = amplitude * sine(d/period, thickness);
ox = x + nx * offset;
oy = y + ny * offset;
这将创建三个脚本参数。这里的 thickness 参数的范围是[0.25..5]。amplitude 参数将控制波从中心能到多高,所以请尝试[5..200]的取值范围。对于 period 参数,可以使用像前面的例子一样的范围[10..100]。
所有的波函数返回一个落在[-1..1]范围的值,所以脚本的第一行将结果乘以我们的amplitude参数,并将结果存储在offset变量中。
接下来的两行为预定义的输出位置变量ox和oy赋值,方法是取当前(x,y)位置,并沿(单位长度)法向量将其置换为offset量。这将导致所绘制的线条围绕钢笔的移动方向来回移动。
一定要使用thickness参数,看看你可以如何改变波浪图案的形状。启用这个脚本并将thickness设置为 3 将会得到以下结果:
这是这个脚本的另一个版本,它通过输入的压力量来调节振幅。这可以让我们在绘图时通过施加或多或少的压力来改变形状。
offset = p * amplitude * sine(d/period, thickness);
ox = x + nx * offset;
oy = y + ny * offset;
当使用脚本以这种方式置换笔的位置时,它有助于在 LNP 中启用一点平滑,因为这也会在你绘制线条时平滑法向量的变化。如果你想让形状以一条完美的直线为中心,你也可以使用 LNP 的其中一种标尺 !
您可以在 Mode 列表的基本图案(Basic Pattern)一项中找到使用这种法线置换概念的其他脚本。
栗子5 —— 齿轮
下回分解
栗子6 —— 书法
下回分解
栗子7 —— 抖动线条
下回分解
栗子8 —— 城市风光
下回分解
栗子9 —— 闪电
下回分解
栗子10 —— 信号错误识别
下回分解
栗子11 —— 调试
下回分解