UNPKG

zrender

Version:

A lightweight graphic library providing 2d draw for Apache ECharts

57 lines (46 loc) 1.27 kB
import Path, { PathProps } from '../Path'; import * as roundSectorHelper from '../helper/roundSector'; export class SectorShape { cx = 0 cy = 0 r0 = 0 r = 0 startAngle = 0 endAngle = Math.PI * 2 clockwise = true /** * Corner radius of sector * * clockwise, from inside to outside, four corners are * inner start -> inner end * outer start -> outer end * * 5 => [5, 5, 5, 5] * [5] => [5, 5, 0, 0] * [5, 10] => [5, 5, 10, 10] * [5, 10, 15] => [5, 10, 15, 15] * [5, 10, 15, 20] => [5, 10, 15, 20] */ cornerRadius: number | number[] = 0 } export interface SectorProps extends PathProps { shape?: Partial<SectorShape> } class Sector extends Path<SectorProps> { shape: SectorShape constructor(opts?: SectorProps) { super(opts); } getDefaultShape() { return new SectorShape(); } buildPath(ctx: CanvasRenderingContext2D, shape: SectorShape) { roundSectorHelper.buildPath(ctx, shape); } isZeroArea() { return this.shape.startAngle === this.shape.endAngle || this.shape.r === this.shape.r0; } } Sector.prototype.type = 'sector'; export default Sector;