/** 
 | 
 * 圆形 
 | 
 */ 
 | 
  
 | 
import Path, { PathProps } from '../Path'; 
 | 
  
 | 
export class CircleShape { 
 | 
    cx = 0 
 | 
    cy = 0 
 | 
    r = 0 
 | 
} 
 | 
  
 | 
export interface CircleProps extends PathProps { 
 | 
    shape?: Partial<CircleShape> 
 | 
} 
 | 
class Circle extends Path<CircleProps> { 
 | 
  
 | 
    shape: CircleShape 
 | 
  
 | 
    constructor(opts?: CircleProps) { 
 | 
        super(opts); 
 | 
    } 
 | 
  
 | 
    getDefaultShape() { 
 | 
        return new CircleShape(); 
 | 
    } 
 | 
  
 | 
    buildPath(ctx: CanvasRenderingContext2D, shape: CircleShape) { 
 | 
        // Use moveTo to start a new sub path. 
 | 
        // Or it will be connected to other subpaths when in CompoundPath 
 | 
        ctx.moveTo(shape.cx + shape.r, shape.cy); 
 | 
        ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2); 
 | 
    } 
 | 
}; 
 | 
  
 | 
Circle.prototype.type = 'circle'; 
 | 
  
 | 
export default Circle; 
 |