Sine Waves
<!doctype html> <html> <body> <canvas id="canvas" width="400" height="400"></canvas> <script> window.onload = function () { let canvas = document.getElementById('canvas'), context = canvas.getContext('2d'), angle = 0, /* w ww. java 2s . co m*/ range = 50, centerY = canvas.height / 2, xspeed = 1, yspeed = 0.05, xpos = 0, ypos = centerY; context.lineWidth = 2; (function drawFrame () { window.requestAnimationFrame(drawFrame, canvas); context.beginPath(); context.moveTo(xpos, ypos); //Calculate the new position. xpos += xspeed; angle += yspeed; ypos = centerY + Math.sin(angle) * range; context.lineTo(xpos, ypos); context.stroke(); }()); }; </script> </body> </html>