跳转到内容

LNNBot/WhatCommands指令/wthsvg

此后如竟没有炬火,我便是唯一的光。

WhatCommands 指令 wthsvg 可根据输入的一系列中文指令绘制图像。主要作者为 cycwin,DGCK81LNN 补充完善部分功能。

用法

¿¿wthsvg 指令...

wthsvg 的参数中每行为一条指令,指令分为操作和属性,操作以横杠(-)开头,属性跟在其所属的操作之后。

操作

-画布 w h
指定画布宽为w,高为h,一般写在最开头作为第一个操作。
-左下角坐标
特殊操作:此操作执行后,后续的所有操作中坐标原点在左下角,纵轴向上。未使用此操作时原点在左上角,纵轴向下。
-线段 x1,y1 x2,y2
绘制从 (x1, y1) 到 (x2, y2) 的线段。
线段目前没有默认颜色,必须通过颜色属性手动设置颜色才可绘制。
-圆形 r x,y
绘制一个圆心在 (x, y),半径为 r 的圆形。
-矩形 x1,y1 x2,y2
绘制一个对角为 (x1, y1) 与 (x2, y2),平行于坐标轴的矩形。
-多边形 x1,y1 x2,y2 x3,y3...
以给定的一系列坐标为顶点绘制多边形。
-文字 x,y 内容
在 (x, y) 处绘制文本。

图形操作(不包括 -文字)可以一次输入多组参数,用英文分号(;)分隔,此时将同时绘制多个同类图形并共用属性。建议在分号之后或前后均添加空格以便阅读。例如,绘制四个半径 50 单位,紧挨在一起的圆:-圆形 50 100,100; 50 100,200; 50 200,100; 50 200,200

属性

设置颜色时,可以使用方括号括起并以空格分隔的 RGB 颜色值([r g b]),CSS 颜色语法(包括 rgb(R,G,B)、井号开头的十六进制颜色值、英文关键字颜色名)和我们预先定义的中文颜色名表示。

背景 c
只对 -画布 指令有效:设置画布背景颜色为 c。可以是“透明”。未设置时默认为白色。
颜色 c
设置图形的颜色为 c
对于除线段之外的图形,未设置时默认为黑色;可将颜色设置为“透明”后再设置描边属性来绘制空心的图形。
描边 c
为图形添加颜色为 c 的描边。
对于线段,与颜色属性等价。
粗细 d
设置线段或描边的宽度为 d
渐变 c1 x1,y1 c2 x2,y2
渐变描边 c1 x1,y1 c2 x2,y2
设置图形(或描边)为渐变色,从 (x1, y1) 处颜色 c1 平滑过渡到 (x2, y2) 处颜色 c2
(x1, y1)、(x2, y2) 两个点可以连成一条线段,称为渐变轴,颜色的 RGB 值在渐变轴上分别均匀变化;图形上任何一个其他的点,都与渐变轴上离那个点最近的一个点的颜色相同。也就是说,让渐变轴沿着垂直于自身的方向平移,扫过的面积里颜色均匀变化,而没有扫过的地方颜色与相应端点的颜色相同,即 c1c2
虚线 l d
设置线段或描边为许多短线组成的虚线,短线长度为 l,每两条短线之间空出 d 的距离。
dl 相同时可省略 d
虚线 l1 d1 l2 d2 l3 ...
高级虚线:从图形轮廓的起点开始先画长 l1 的短线,空出 d1 的距离,再画 l2 的短线,空出 d2,以此类推,直到最后一组 lndn 后循环。若最后一组只有 ln 没有 dn(即总共有奇数个数字),则最后一个短线长度 ln 跟循环回开头的第一个短线长度 l1 合并为一条长 ln + l1 的短线,之后再空出 d1 的距离,画 l2 的短线……这样继续下去。
平头
取消线段或虚线两端默认存在的小半圆,使本来圆头的线变为平头。
方头
将线段或虚线两端本来的小半圆改为小长方形,类似于平头但是视觉上使线的两端各延长了线宽度的一半。
字号 s
设置文字的大小为 s
字体 名称
设置文字使用的字体族名称。
字重 w
设置字重(文字形状的粗细)为 w
字重是一个 1000 以内的正整数,未设置时默认为 400,即常规。w 也可以是汉字“”,表示 700,即粗体。只有部分字体支持任意设置字重,多数只支持几个固定的值,如果字体不支持你设置的字重,会自动选择一个比较接近的可用值。
字宽 w
设置字宽为 w%。
字宽是一个 50% 到 200% 之间的百分数,未设置时为 100%。只有部分字体支持设置字宽。
斜体
使文字倾斜(使用意大利体的字母)。
斜体 a
斜体 后面也可以跟一个角度 a,表示让文字倾斜大约 a 度。正常的倾斜体是 14 度。很少有字体支持任意设置倾斜角度。
左对齐
右对齐
让文字的左/右端对准设置的坐标。未设置时,默认是让文字的中心落在设置的坐标处。

示例

待添加