改訂版

微分も要らないようになった。

function onLoad(){
  logo.init();
  move(100);
  turn(90);
  move(-100);
  penDown();
  var x = new Function('t', 'return t;');
  var y = new Function('t', 'return t*t;');
  graph(x, y, 0, 1, 1/32, 200);
  penUp();
}
function graph(x, y, start, end, dt, scale) {
  var rot = 0;
  for(var t = start; t < end; t = t + dt) {
    var dy = y(t+dt)-y(t);
    var dx = x(t+dt)-x(t);
    var th = Math.atan2(dy,dx)/Math.PI*180;
    var ln = Math.sqrt(dy*dy+dx*dx)*scale;
    turn(th - rot);
    rot = th;
    move(ln);
  }
}