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">
|
平移所有的積木,給出平移後的代碼。 |