HTML Canvas Quadratic Curve Random Curve 3
<!doctype html> <html> <head> <meta charset="utf-8"> <title>Multi Curve 3</title> </head>/* w ww.j a va 2 s . c o m*/ <body> <canvas id="canvas" width="400" height="400"></canvas> <aside>Refresh page for random curves.</aside> <script> window.onload = function () { var canvas = document.getElementById('canvas'), context = canvas.getContext('2d'), points = [], numPoints = 19, ctrlPoint = {}, ctrlPoint1 = {}; for (var i = 0; i < numPoints; i++) { points.push({ x: Math.random() * canvas.width, y: Math.random() * canvas.height }); } //find the first midpoint and move to it ctrlPoint1.x = (points[0].x + points[numPoints-1].x) / 2; ctrlPoint1.y = (points[0].y + points[numPoints-1].y) / 2; context.beginPath(); context.moveTo(ctrlPoint1.x, ctrlPoint1.y); //curve through the rest, stopping at each midpoint for (i = 0; i < numPoints - 1; i++) { ctrlPoint.x = (points[i].x + points[i+1].x) / 2; ctrlPoint.y = (points[i].y + points[i+1].y) / 2; context.quadraticCurveTo(points[i].x, points[i].y, ctrlPoint.x, ctrlPoint.y); } //curve through the last point, back to the first midpoint context.quadraticCurveTo(points[i].x, points[i].y, ctrlPoint1.x, ctrlPoint1.y); context.stroke(); }; </script> </body> </html>