Quadratic Bezier Curves

In this chapter you will learn:

  1. How to draw Quadratic Bezier Curves

Drawing Quadratic Bezier Curves

A quadratic Bezier curve has only one control point.

<!DOCTYPE HTML><!--from  j  av a  2s .  c o  m-->
<html>
<head>
<style>
canvas {
      border: thin solid black
}

body>* {
      float: left;
}
</style>
</head>
<body>
      <canvas id="canvas" width="500" height="840"> 
      Your browser doesn't support the <code>canvas</code> element 
      </canvas>
      <script>
            var canvasElem = document.getElementById("canvas");
            var ctx = canvasElem.getContext("2d");
            var startPoint = [ 150, 100 ];
            var endPoint = [ 400, 100 ];
            var cp1 = [ 250, 50 ];
            draw();
            function draw() {
                  ctx.lineWidth = 3;
                  ctx.strokeStyle = "red";
                  ctx.beginPath();
                  ctx.moveTo(startPoint[0], startPoint[1]);
                  ctx.quadraticCurveTo(cp1[0], cp1[1], endPoint[0], endPoint[1]);
                  ctx.stroke();
                  ctx.lineWidth = 1;
                  ctx.strokeStyle = "red";
                  var points = [ startPoint, endPoint, cp1 ];
                  for ( var i = 0; i < points.length; i++) {
                        drawPoint(points[i]);
                  }
                  drawLine(startPoint, cp1);
                  drawLine(endPoint, cp1);
            }
            function drawPoint(point) {
                  ctx.beginPath();
                  ctx.strokeRect(point[0] - 2, point[1] - 2, 4, 4);
            }
            function drawLine(from, to) {
                  ctx.beginPath();
                  ctx.moveTo(from[0], from[1]);
                  ctx.lineTo(to[0], to[1]);
                  ctx.stroke();
            }
      </script>
</body>
</html>

Click to view the demo

Next chapter...

What you will learn in the next chapter:

  1. How to draw Cubic Bezier Curves
Home » Javascript Tutorial » Canvas
Canvas tag
Canvas Context
Rectangle
Rectangle clear
Drawing State
Drawing state restore
Line width
Line Join Style
Line cap settings
Gradients
Linear Gradient
Radial Gradient
Path
Arcs
Two types of curve
Quadratic Bezier Curves
Cubic Bezier Curves
Clip
Text
Shadow
Transparency
Stoke style