import { MiShapeConfig , Shape } from '@components/canvas/Shape' ; export interface MiArcConfig extends MiShapeConfig { radius : number ; x : number ; y : number ; startAngle ? : number ; endAngle ? : number ; anticlockwise ? : boolean ; solid ? : boolean ; } export class Arc extends Shape < MiArcConfig > { x : number ; y : number ; radius : number ; anticlockwise ? : boolean = false ; startAngle : number ; endAngle : number ; param config constructor ( config ) { super ( config ) ; this . x = config . x || 0 ; this . y = config . y || 0 ; this . startAngle = config . startAngle || - Math . PI ; this . endAngle = config . endAngle || Math . PI ; this . radius = config . radius ; this . anticlockwise = config . anticlockwise ; } param ctx public draw ( ctx ) { this . assign ( ctx ) ; ctx . save ( ) ; ctx . beginPath ( ) ; ctx . arc ( this . x , this . y , this . radius , this . startAngle , this . endAngle , this . anticlockwise ) ; ctx . closePath ( ) ; ctx . clip ( ) ; ctx . fill ( ) ; ctx . stroke ( ) ; ctx . restore ( ) ; } }