UNPKG

zrender

Version:

A lightweight graphic library providing 2d draw for Apache ECharts

58 lines (44 loc) 1.12 kB
/** * 圆弧 */ import Path, { PathProps } from '../Path'; export class ArcShape { cx = 0; cy = 0; r = 0; startAngle = 0; endAngle = Math.PI * 2 clockwise? = true } export interface ArcProps extends PathProps { shape?: Partial<ArcShape> } class Arc extends Path<ArcProps> { shape: ArcShape constructor(opts?: ArcProps) { super(opts); } getDefaultStyle() { return { stroke: '#000', fill: null as string }; } getDefaultShape() { return new ArcShape(); } buildPath(ctx: CanvasRenderingContext2D, shape: ArcShape) { const x = shape.cx; const y = shape.cy; const r = Math.max(shape.r, 0); const startAngle = shape.startAngle; const endAngle = shape.endAngle; const clockwise = shape.clockwise; const unitX = Math.cos(startAngle); const unitY = Math.sin(startAngle); ctx.moveTo(unitX * r + x, unitY * r + y); ctx.arc(x, y, r, startAngle, endAngle, !clockwise); } } Arc.prototype.type = 'arc'; export default Arc;