<title>fourier square wave</title>
<style>body { margin:0; padding:0; }</style>
var c = document.body.appendChild(document.createElement('canvas'));
var ctx = c.getContext('2d');
ctx.strokeStyle = '#000';
for (var k = 1; k < n; k ++) {
val += Math.sin(Math.PI * 2 * ((2 * k) - 1) * f * t) / ((2 * k) - 1);
return (2 / Math.PI) * val;
ctx.strokeStyle = '#aaf';
ctx.strokeStyle = '#000';
for (var t = 0; t < Math.PI * 4; t += 0.01) {
ctx.lineTo(t * 100, (y * 100) + h/2);
document.onmousemove = function(e) {
draw((Math.floor(e.pageX / 20)) + 1, 0.2);
var it = 0, interval = window.setInterval(function() {
if (++it < 20) draw(it + 1, 0.2);
else window.clearInterval(it);