跳至內容

LNNBot/指令/numberblocks

出自希顶维基
numberblocks
別名 nbsu6d
屬性 請求輸入參數、嚴格選項解析
所屬插件 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 列方格。

trtrrtdtddtultluturtrutdltldtdrtrd 為「特殊十」關鍵詞,會從指定的點開始以特定順序選定 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"> 平移所有的積木,給出平移後的代碼。