From 0ee1b32be650f80cb262f8270860cb233e278c68 Mon Sep 17 00:00:00 2001 From: Di Wu Date: Tue, 4 Jan 2022 14:35:36 +0800 Subject: [PATCH 1/2] fix(svg): fix animation on strokePercent will cause partially drawing. --- src/svg/graphic.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/svg/graphic.ts b/src/svg/graphic.ts index 66b33b907..1a853473e 100644 --- a/src/svg/graphic.ts +++ b/src/svg/graphic.ts @@ -133,6 +133,7 @@ const buitinShapesDef: Record = { interface PathWithSVGBuildPath extends Path { __svgPathVersion: number __svgPathBuilder: SVGPathRebuilder + __svgPathStrokePercent: number } function hasShapeAnimation(el: Displayable) { @@ -185,7 +186,7 @@ export function brushSVGPath(el: Path, scope: BrushScope) { let svgPathBuilder = elExt.__svgPathBuilder; if (elExt.__svgPathVersion !== pathVersion || !svgPathBuilder - || strokePercent < 1 + || el.style.strokePercent !== elExt.__svgPathStrokePercent ) { if (!svgPathBuilder) { svgPathBuilder = elExt.__svgPathBuilder = new SVGPathRebuilder(); @@ -194,6 +195,7 @@ export function brushSVGPath(el: Path, scope: BrushScope) { path.rebuildPath(svgPathBuilder, strokePercent); svgPathBuilder.generateStr(); elExt.__svgPathVersion = pathVersion; + elExt.__svgPathStrokePercent = el.style.strokePercent; } attrs.d = svgPathBuilder.getStr(); From 6547a9b47b2571341cdfb372bec53260eb92abed Mon Sep 17 00:00:00 2001 From: Di Wu Date: Tue, 4 Jan 2022 15:48:16 +0800 Subject: [PATCH 2/2] Use variable 'strokePercent' directly. --- src/svg/graphic.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/svg/graphic.ts b/src/svg/graphic.ts index 1a853473e..ba4892197 100644 --- a/src/svg/graphic.ts +++ b/src/svg/graphic.ts @@ -186,7 +186,7 @@ export function brushSVGPath(el: Path, scope: BrushScope) { let svgPathBuilder = elExt.__svgPathBuilder; if (elExt.__svgPathVersion !== pathVersion || !svgPathBuilder - || el.style.strokePercent !== elExt.__svgPathStrokePercent + || strokePercent !== elExt.__svgPathStrokePercent ) { if (!svgPathBuilder) { svgPathBuilder = elExt.__svgPathBuilder = new SVGPathRebuilder(); @@ -195,7 +195,7 @@ export function brushSVGPath(el: Path, scope: BrushScope) { path.rebuildPath(svgPathBuilder, strokePercent); svgPathBuilder.generateStr(); elExt.__svgPathVersion = pathVersion; - elExt.__svgPathStrokePercent = el.style.strokePercent; + elExt.__svgPathStrokePercent = strokePercent; } attrs.d = svgPathBuilder.getStr();