var b=document.body,c=document.getElementById("c"),t=c.getContext("2d"),cos=Math.cos,sin=Math.sin;b.style.margin=0;c.width=innerWidth;c.height=innerHeight;var f=200,vpX=c.width/2,vpY=c.height/2,p=[],mX=0,mY=0;c.onmousemove=function(a){mX=a.clientX;mY=a.clientY};(c.onclick=function(d){p=[];for(var c="2*Math.sin(Math.sqrt(x*x+y*y))/Math.sqrt(x*x+y*y)",e=new Function("x,y","return "+(d?prompt("function",c):c)),a=-10;a<10;a+=.5)for(var b=-10;b<10;b+=.5)p.push({x:a*10,y:b*10,z:20*e(a,b)})})();setInterval(function(){for(var h=1e-4*(mX-vpX),j=cos(h),l=sin(h),g=1e-4*(mY-vpY),i=cos(g),k=sin(g),a,e,d,b=p.length;b--;){a=p[b];d=a.z*j+a.x*l;a.x=a.x*j-a.z*l;a.z=d*i+a.y*k;a.y=a.y*i-d*k;e=f/(f+a.z);a._x=vpX+a.x*e;a._y=vpY+a.y*e}t.clearRect(0,0,c.width,c.height);if(p.length){t.strokeStyle="rgb(40,50,20)";t.beginPath();t.moveTo(p[0]._x,p[0]._y);for(var m=p.length,b=1;b<m;b++)if(b%40)t.lineTo(p[b]._x,p[b]._y);else t.moveTo(p[b]._x,p[b]._y);t.stroke()}t.fillText("Click to edit equation",99,99)},0);
dmFyIGI9ZG9jdW1lbnQuYm9keSxjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjIiksdD1jLmdldENvbnRleHQoIjJkIiksY29zPU1hdGguY29zLHNpbj1NYXRoLnNpbjtiLnN0eWxlLm1hcmdpbj0wO2Mud2lkdGg9aW5uZXJXaWR0aDtjLmhlaWdodD1pbm5lckhlaWdodDt2YXIgZj0yMDAsdnBYPWMud2lkdGgvMix2cFk9Yy5oZWlnaHQvMixwPVtdLG1YPTAsbVk9MDtjLm9ubW91c2Vtb3ZlPWZ1bmN0aW9uKGEpe21YPWEuY2xpZW50WDttWT1hLmNsaWVudFl9OyhjLm9uY2xpY2s9ZnVuY3Rpb24oZCl7cD1bXTtmb3IodmFyIGM9IjIqTWF0aC5zaW4oTWF0aC5zcXJ0KHgqeCt5KnkpKS9NYXRoLnNxcnQoeCp4K3kqeSkiLGU9bmV3IEZ1bmN0aW9uKCJ4LHkiLCJyZXR1cm4gIisoZD9wcm9tcHQoImZ1bmN0aW9uIixjKTpjKSksYT0tMTA7YTwxMDthKz0uNSlmb3IodmFyIGI9LTEwO2I8MTA7Yis9LjUpcC5wdXNoKHt4OmEqMTAseTpiKjEwLHo6MjAqZShhLGIpfSl9KSgpO3NldEludGVydmFsKGZ1bmN0aW9uKCl7Zm9yKHZhciBoPTFlLTQqKG1YLXZwWCksaj1jb3MoaCksbD1zaW4oaCksZz0xZS00KihtWS12cFkpLGk9Y29zKGcpLGs9c2luKGcpLGEsZSxkLGI9cC5sZW5ndGg7Yi0tOyl7YT1wW2JdO2Q9YS56KmorYS54Kmw7YS54PWEueCpqLWEueipsO2Euej1kKmkrYS55Kms7YS55PWEueSppLWQqaztlPWYvKGYrYS56KTthLl94PXZwWCthLngqZTthLl95PXZwWSthLnkqZX10LmNsZWFyUmVjdCgwLDAsYy53aWR0aCxjLmhlaWdodCk7aWYocC5sZW5ndGgpe3Quc3Ryb2tlU3R5bGU9InJnYig0MCw1MCwyMCkiO3QuYmVnaW5QYXRoKCk7dC5tb3ZlVG8ocFswXS5feCxwWzBdLl95KTtmb3IodmFyIG09cC5sZW5ndGgsYj0xO2I8bTtiKyspaWYoYiU0MCl0LmxpbmVUbyhwW2JdLl94LHBbYl0uX3kpO2Vsc2UgdC5tb3ZlVG8ocFtiXS5feCxwW2JdLl95KTt0LnN0cm9rZSgpfXQuZmlsbFRleHQoIkNsaWNrIHRvIGVkaXQgZXF1YXRpb24iLDk5LDk5KX0sMCk7
Original source not submitted