/**
|
* 圆形
|
*/
|
|
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;
|