UNPKG

vislite

Version:

灵活、快速、简单的数据可视化交互式跨端前端库

32 lines (29 loc) 1.26 kB
const enhanceGradient = function (gradient: CanvasGradient, calcStop?: Function) { const enhanceGradient = { "value": function () { return gradient }, "setColor": function (stop: number, color: string) { gradient.addColorStop(calcStop ? calcStop(stop) : stop, color) return enhanceGradient } }; return enhanceGradient } // 线性渐变 export const linearGradient = function (painter: CanvasRenderingContext2D, x0: number, y0: number, x1: number, y1: number) { const gradient = painter.createLinearGradient(x0, y0, x1, y1) return enhanceGradient(gradient) } // 环形渐变 export const radialGradient = function (painter: CanvasRenderingContext2D, cx: number, cy: number, r: number) { const gradient = painter.createRadialGradient(cx, cy, 0, cx, cy, r) return enhanceGradient(gradient) } // 角度渐变 export const conicGradient = function (painter: CanvasRenderingContext2D, cx: number, cy: number, startDeg: number, deg?: number) { const gradient = painter.createConicGradient(startDeg, cx, cy) return enhanceGradient(gradient, deg ? (stop: number) => { return deg / (Math.PI * 2) * stop } : undefined) }