Summary: in this tutorial, you’ll learn how to draw a line using the Canvas API.
Steps for drawing a line in JavaScript
To draw a line on a canvas, you use the following steps:
- First, create a new line by calling the
beginPath()method. - Second, move the drawing cursor to the point
(x,y)without drawing a line by calling themoveTo(x, y). - Finally, draw a line from the previous point to the
point (x,y)by calling thelineTo(x,y)method.
Set the line stroke
If you want to stroke the line with the strokeStyle, you can call the stroke() method after calling the lineTo(x,y) method.
Set the line width
To set the width for a line, you use the lineWidth property of the 2D drawing context before calling stroke() method:
ctx.lineWidth = 10;The lineTo(x,y) method
The lineTo(x,y ) method accepts both positive and negative arguments.
If the x is positive, the lineTo(x,y) method draws the line from the starting point to the right. Otherwise, it draws the line from the starting point to the left.
If the y is positive, the lineTo(x,y) method draws the line from the starting point down the y-axis. Otherwise, it draws the line from the starting point up to the y-axis.
Drawing a line example
The following shows the index.html file that contains a canvas element:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>JavaScript - Drawing a Line</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<h1>JavaScript - Drawing a Line</h1>
<canvas id="canvas" height="400" width="500">
</canvas>
<script src="js/app.js"></script>
</body>
</html>Code language: HTML, XML (xml)And this app.js contains that draws a line with the color red, 5-pixel width from the point (100, 100) to (300, 100):
function draw() {
const canvas = document.querySelector('#canvas');
if (!canvas.getContext) {
return;
}
const ctx = canvas.getContext('2d');
// set line stroke and line width
ctx.strokeStyle = 'red';
ctx.lineWidth = 5;
// draw a red line
ctx.beginPath();
ctx.moveTo(100, 100);
ctx.lineTo(300, 100);
ctx.stroke();
}
draw();Code language: JavaScript (javascript)The following shows the output:

Here is the link that shows the canvas with the line.
Develop a resuable drawLine() function
The following drawLine() function draws a line from one point to another with a specified stroke and width:
function drawLine(ctx, begin, end, stroke = 'black', width = 1) {
if (stroke) {
ctx.strokeStyle = stroke;
}
if (width) {
ctx.lineWidth = width;
}
ctx.beginPath();
ctx.moveTo(...begin);
ctx.lineTo(...end);
ctx.stroke();
}
Code language: JavaScript (javascript)To draw a line from (100,100) to (100,300) with the line color green and line width 5 pixels, you can call the drawLine() function as follows:
const canvas = document.querySelector('#canvas');
if (canvas.getContext) {
const ctx = canvas.getContext('2d');
drawLine(ctx, [100, 100], [100, 300], 'green', 5);
}
Code language: JavaScript (javascript)Summary
- Use
beginPath(),moveTo(x, y)andlineTo(x,y)to draw a line. - Use the
strokeStyleandlineWidthto set the line stroke and line width.