LNNBot/指令/numberblocks
numberblocks
| ||
| 别名 | nb、su6d
| |
| 属性 | 请求输入参数、严格选项解析 | |
| 所属插件 | miniplug:common/numberblocks | |
| 父级指令 | util.image
| |
numberblocks 指令用于生成 Numberblocks 简图,修改自荆哲的 Numberblocks 简图生成器。
用法
numberblocks <input:rawtext...>
参数
input 是一段描述数字方块排列方式的代码,它本质上定义了一些坐标序列,每个坐标序列会作为一组积木,将对应位置的方格按 Numberblocks 的涂色规则,从大计数单位到小计数单位进行涂色。例如,对于一个含有 176 个格子的序列,前 100 个格子会涂成表示 100 的带棋盘格图案的红色,随后 70 个格子按每 10 个为一组涂成表示 70 的带描边的彩虹色,最后 6 个涂成表示 6 的紫色。
坐标系的纵轴正方向向下,横轴正方向向右,坐标值必须是 1000 以内的正整数。每个积木组最多包含 99999 个方格。一个积木组中若出现重复的方格,只取其第一次出现的位置。
每个积木组表示为一系列以换行或分号分隔的语句,每个语句选定了一个或多个方格的坐标;每个语句由可选的关键字与纵坐标、横坐标组成,其间可以用逗号或空格分隔,关键字后一般使用空格,横、纵坐标之间一般使用逗号。
关键字 纵坐标,横坐标
不带关键字的语句可表示单个方格,也可以在横、纵坐标处填入以冒号隔开的两个数作为区间(区间起点:区间终点)来表示一个长方形区域。当横、纵坐标都是区间时,将会逐行填充。区间可以是正序或倒序的,当区间终点小于区间起点时,将按坐标从大到小的方向进行填充。
关键字 v(注意关键字与坐标之间需有空格)可以让长方形区域逐列而非逐行填充。
| 语句 | 作用 |
|---|---|
2,3 |
选定第 2 行第 3 列的方格。 |
1,1:7 |
从左到右依次选定第 1 行第 1 到 7 列的方格。 |
7:1,1:10 |
从第 7 行第 1 列开始,从左到右、从下到上依次选定每行 10 个的 7 行方格。 |
v 1:5,2:6 |
从第 1 行第 2 列开始,从上到下、从左到右依次选定每列 5 个的 5 列方格。 |
tr、trr、td、tdd、tul、tlu、tur、tru、tdl、tld、tdr、trd 为“特殊十”关键词,会从指定的点开始以特定顺序选定 10 个方格。“特殊十”的坐标只能是单个点,区间无效。
| 关键词 | 说明 |
|---|---|
tr |
从起点开始向右选定 10 格 |
trr |
从起点开始向右选定 5 格,再从起点下方一格开始向右选定 5 格 |
td |
从起点开始向下选定 10 格 |
tdd |
从起点开始向下选定 5 格,再从起点右侧一格开始向下选定 5 格 |
tul |
以起点为直角顶点选定阶梯形的 10 格,先上后左 |
tlu |
以起点为直角顶点选定阶梯形的 10 格,先左后上 |
tur |
以起点为直角顶点选定阶梯形的 10 格,先上后右 |
tru |
以起点为直角顶点选定阶梯形的 10 格,先右后上 |
tdl |
以起点为直角顶点选定阶梯形的 10 格,先下后左 |
tld |
以起点为直角顶点选定阶梯形的 10 格,先左后下 |
tdr |
以起点为直角顶点选定阶梯形的 10 格,先下后右 |
trd |
以起点为直角顶点选定阶梯形的 10 格,先右后下 |
不同的积木组之间用 --- 或 === 分隔,它们会各自分别涂色,互不影响。
选项
| 语法 | 说明 |
|---|---|
-b, --background <color>
|
以 CSS 颜色值指定输出图片的背景颜色。HEX 色号需加井号。 |
-v, --viewport <"[top left] height width">
|
指定输出图片中要显示的区域,用空格或逗号分隔数字,若适用空格则需要加引号。始行、始列均为 1 时可省略,只写行数、列数。在该区域外的积木会被忽略,涂色时不计入积木的块数。未指定该选项时,会自动裁剪到有积木块的矩形区域。 |
-g, --gap <0~0.02>
|
指定方格之间格线的宽度,默认 0.005。 |
-B, --border <0~0.2>
|
指定 10 以上数字涂色的边框粗细,默认 0.1。 |
-r, --ruler
|
在图片四边绘制标尺,用坐标值的最小非零数位的 Numberblocks 颜色表示对应的横/纵坐标。 |
-m, --move <"rows cols">
|
平移所有的积木,给出平移后的代码。 |