diff --git a/src/extension/figure/line.ts b/src/extension/figure/line.ts index d1c91831..bf047b06 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() }