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
strokeStyle
andlineWidth
to set the line stroke and line width.