import Layer from './Layer'; export interface ISketchOptions { /** * 画布宽度, 单位px */ w: number; /** * 画布高度, 单位px */ h: number; /** * 尺寸基数, 单位px * * 所有数值(`strokeWidth` 除外)在最后输出为px时都将乘以 `unit` * * 建议设置为 [[w]] 或 [[h]] 的1% */ unit: number; /** * 画布 DOM * * 若不传入该值,则会在内部创建一个 Canvas DOM,则必须通过appendTo 添加到文档上 */ canvas: HTMLCanvasElement | null; } export interface ISketchUtils { mapping: (value: number) => number; unmapping: (value: number) => number; } /** * 画布 */ export default class Sketch { static defaultOptions: ISketchOptions; canvas: HTMLCanvasElement | null; ctx: CanvasRenderingContext2D | null; options: ISketchOptions; layer: Layer; private raf?; constructor(options?: Partial); /** * 渲染 * * 不需要主动调用,任何操作都后都会发起渲染请求 */ render(): this; /** * 将 Canvas 添加到 ... */ appendTo(element: HTMLElement): this; /** * 设置画布尺寸 * @param w 宽度 * @param h 高度 */ size(w: number, h?: number): this; /** * 设置基数 * @param value 推荐是画布宽度或高度的 1% */ unit(value: number): this; private _render; }