From 3fa9ce81346be70365a4e44d7f908c9deb1af7e6 Mon Sep 17 00:00:00 2001 From: liihuu Date: Thu, 30 May 2024 01:37:28 +0800 Subject: [PATCH] opt: opt line render --- src/extension/figure/line.ts | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/extension/figure/line.ts b/src/extension/figure/line.ts index d1c918312..bf047b069 100644 --- a/src/extension/figure/line.ts +++ b/src/extension/figure/line.ts @@ -152,8 +152,22 @@ export function drawLine (ctx: CanvasRenderingContext2D, attrs: LineAttrs | Line lines.forEach(({ coordinates }) => { if (coordinates.length > 1) { ctx.beginPath() - ctx.moveTo(coordinates[0].x, coordinates[0].y) - lineTo(ctx, coordinates, smooth) + if (coordinates.length === 2) { + const correction = (size % 2 === 1) ? 0.5 : 0 + if (coordinates[0].x === coordinates[1].x) { + ctx.moveTo(coordinates[0].x + correction, coordinates[0].y) + ctx.lineTo(coordinates[1].x + correction, coordinates[1].y) + } else if (coordinates[0].y === coordinates[1].y) { + ctx.moveTo(coordinates[0].x, coordinates[0].y + correction) + ctx.lineTo(coordinates[1].x, coordinates[1].y + correction) + } else { + ctx.moveTo(coordinates[0].x, coordinates[0].y) + ctx.lineTo(coordinates[1].x, coordinates[1].y) + } + } else { + ctx.moveTo(coordinates[0].x, coordinates[0].y) + lineTo(ctx, coordinates, smooth) + } ctx.stroke() ctx.closePath() }