极速渲染抽象派草图 git
Skatch 这个词由 sketch wechart abstract cax 混合而成的一个新词,表明了cax wechart 抽象艺术派派草图渲染器。说得直白一点就是npm 上 sketch 被 tj 占了,只能强行加上赋予某些意义合成 skatch 这个词。关于个人合成词的相关库最满意的非 pasition (path transition) 莫属了。github
const skatch = new Skatch({
randomRange: 10, //点的抖动范围
strokeRepeat: 12, //重复绘制的次数
strokeWidth: 1, //绘制线宽
strokeStyle: 'black',//绘制颜色
gap: 5, //填充线的间距
fillAngle: -45,//填充线的角度
curveRange: 45, //填充线扭曲范围
fillWidth: 1, //填充线的线宽
fillRepeat: 2,//填充线重复填充的次数
fillStyle: '#6aa8df',//填充线的颜色
filter: 1 //绘制 path 的时候过滤的比例,范围是 (0-1)
})
skatch.circle(310, 280, 50)
stage.add(skatch)
stage.update()
复制代码
因为 skatch 是 cax 自定义 Element(继承自 cax.Group),因此拥有设置全部属性的能力,以下所示:npm
属性名 | 描述 |
---|---|
x | 水平偏移 |
y | 竖直偏移 |
scaleX | 水平缩放 |
scaleY | 竖直缩放 |
rotation | 旋转 |
skewX | 歪斜 X |
skewY | 歪斜 Y |
originX | 旋转基点 X |
originY | 旋转基点 Y |
属性名 | 描述 |
---|---|
alpha | 元素的透明度 |
注意这里父子都设置了 alpha 会进行乘法叠加。微信
属性名 | 描述 |
---|---|
compositeOperation | 源图像绘制到目标图像上的叠加模式 |
注意这里若是自身没有定义 compositeOperation 会进行向上查找,找到最近的定义了 compositeOperation 的父容器做为本身的 compositeOperation。dom
属性名 | 描述 |
---|---|
cursor | 鼠标移上去的形状 |
属性名 | 描述 |
---|---|
fixed | 是否固定定位,默认是 false 设置成 true 不会叠加祖辈们的 transform 属性 |
属性名 | 描述 |
---|---|
shadow | 阴影 |
使用方式:spa
obj.shadow = {
color: '#42B035',
offsetX: -5,
offsetY: 5,
blur: 10
}
复制代码
skatch 共拥有以下方法进行草图绘制:code
能够这么理解: rect === strokeRect + fillRect 。其余的形状以此类推。orm
Rough 是很是著名的草图渲染库,看上去 skatch 和 rough 很是相似,可是有着本质的不一样。cdn
看上去 skatch 过程复杂?因此速度更慢?大错特错!Skatch clip 和 图层的行为都是纯图像处理,在 GPU 中完成,有硬件加速,小部分任务在 CPU 中完成。 也能够这样理解 rough 主要计算放在 CPU,skatch主要计算放在了 GPU。Skatch 具体的原理等待个人教程。blog
MIT