Pen
钢笔属性。
PenNetwork
钢笔矢量网络属性。
interface PenNetwork {
readonly ctrlNodes: ReadonlyArray<[number, number]>
readonly nodes: ReadonlyArray<PenNetworkNode>
readonly paths: ReadonlyArray<PenNetworkPath>
readonly regions: ReadonlyArray<Region>
}
ctrlNodes
:控制点数组,数组元素为控制点坐标[x, y],控制点主要用于二阶/三阶贝塞尔曲线绘制,路径无贝塞尔曲线线段则为空数组。nodes
:端点数组,数组元素为端点信息。paths
:线段数组,数组元素为线段的信息。regions
:区域信息数组,元素表示为独立填充区域信息,若无独立填充区域则为空数组。
PenNetworkNode
钢笔端点。
interface PenNetworkNode {
readonly x: number
readonly y: number
readonly strokeCap: StrokeCap
readonly cornerRadius: number
}
x
:端点横坐标。y
:端点纵坐标。strokeCap
:端点的装饰,具体可查看类型 StrokeCap。cornerRadius
:端点的圆角。
Region
钢笔的填充区域数组。
interface Region {
readonly loops: number[][]
readonly windingRule: WindingRule
}
loops
:填充区域数组,其元素描述独立填充的区域范围。loops[i]表示该填充区域所包含的封闭区域的“最大”闭环,loop[i][j]表示组成该封闭区域的边,值为paths的对应下标。windingRule
:svg 填充规则,具体可查看类型 WindingRule。
StrokeCap
端点的装饰。
type StrokeCap = 'NONE' | 'ROUND' | 'SQUARE' | 'LINE_ARROW' | 'TRIANGLE_ARROW' | 'ROUND_ARROW' | 'RING' | 'DIAMOND' | 'LINE'
NONE
: 正常。ROUND
: 圆角。SQUARE
: 方型。LINE_ARROW
: 普通箭头。TRIANGLE_ARROW
: 三角箭头。ROUND_ARROW
: 圆形(实心)箭头。RING
: 环形箭头。DIAMOND
: 菱形箭头。LINE
: 直线箭头。
PenNetworkPath
钢笔路径的线段基础属性。
type PenNetworkPath = [number, number, number, number]
其值长度固定为4,其含义分别为[startNode, ctrlNode1. ctrlNode2, endNode]的装饰。
startNode
: 线段起点,值是nodes对应下标。ctrlNode1
: 第一个控制点,值是ctrlNodes
对应下标,若该线段不是贝塞尔曲线则为-1。ctrlNode2
: 第二个控制点,值是ctrlNodes
对应下标,若该线段不是三阶贝塞尔曲线则为-1。endNode
: 线段终点,值是nodes对应下标。
WindingRule
type WindingRule = 'Nonzero' | 'Evenodd'
Nonzero
:非零规则。Evenodd
:奇偶规则。
svg 填充规则 fill-rule