UNPKG

@visactor/vrender-core

Version:
31 lines (25 loc) 1.43 kB
import { tau } from "@visactor/vutils"; import { BaseSymbol } from "./base"; const kr = Math.sin(Math.PI / 10) / Math.sin(7 * Math.PI / 10), kx = Math.sin(tau / 10) * kr, ky = -Math.cos(tau / 10) * kr; export function star(ctx, r, transX, transY) { const x = kx * r, y = ky * r; ctx.moveTo(transX, -r + transY), ctx.lineTo(x + transX, y + transY); for (let i = 1; i < 5; ++i) { const a = tau * i / 5, c = Math.cos(a), s = Math.sin(a); ctx.lineTo(s * r + transX, -c * r + transY), ctx.lineTo(c * x - s * y + transX, s * x + c * y + transY); } return ctx.closePath(), !0; } export class StarSymbol extends BaseSymbol { constructor() { super(...arguments), this.type = "star", this.pathStr = "M0 -1L0.22451398828979266 -0.3090169943749474L0.9510565162951535 -0.30901699437494745L0.3632712640026804 0.1180339887498948L0.5877852522924732 0.8090169943749473L8.326672684688674e-17 0.3819660112501051L-0.587785252292473 0.8090169943749476L-0.3632712640026804 0.11803398874989487L-0.9510565162951536 -0.30901699437494723L-0.22451398828979274 -0.30901699437494734Z"; } draw(ctx, size, transX, transY) { return star(ctx, this.parseSize(size) / 2, transX, transY); } drawOffset(ctx, size, transX, transY, offset) { return star(ctx, this.parseSize(size) / 2 + offset, transX, transY); } } export default new StarSymbol; //# sourceMappingURL=star.js.map