1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| /**
| * 圆环
| */
|
| import Path, { PathProps } from '../Path';
|
| export class RingShape {
| cx = 0
| cy = 0
| r = 0
| r0 = 0
| }
|
| export interface RingProps extends PathProps {
| shape?: Partial<RingShape>
| }
| class Ring extends Path<RingProps> {
|
| shape: RingShape
|
| constructor(opts?: RingProps) {
| super(opts);
| }
|
| getDefaultShape() {
| return new RingShape();
| }
|
| buildPath(ctx: CanvasRenderingContext2D, shape: RingShape) {
| const x = shape.cx;
| const y = shape.cy;
| const PI2 = Math.PI * 2;
| ctx.moveTo(x + shape.r, y);
| ctx.arc(x, y, shape.r, 0, PI2, false);
| ctx.moveTo(x + shape.r0, y);
| ctx.arc(x, y, shape.r0, 0, PI2, true);
| }
| }
|
| Ring.prototype.type = 'ring';
| export default Ring;
|
|