Spring with rest lenght

Canvas draw a spring with width and rest lenght

HTML

<canvas id="cv" width="600" height="400"></canvas>

JavaScript

var cv = document.getElementById('cv'),
  ctx = cv.getContext('2d'),
  mouse = capture(cv),
  box = new Box(120, 80, 0, 16),
  spring = new Spring(160, 20, 2, 0.03, 0.9),
  vx = 0,
  vy = 0;
function Spring(restLenght, width, numRounds, k, f){
	this.x1 = 0;
  this.y1 = 0;
  this.x2 = 0;
  this.y2 = 0;
  this.restLenght = restLenght;
  this.width = width;
  this.numRounds = numRounds;
  this.k = k;
  this.f = f;
  this.color = "green";
  this.lineWidth = 6;
}

Spring.prototype.draw = function(ctx) {
	var sPX, sPY, cP1X, cP1Y, cP2X, cP2Y, ePX, ePY;
  ctx.save();
  ctx.translate(this.x, this.y);
  ctx.rotate(this.rotation);
  ctx.lineWidth = this.lineWidth;
  ctx.strokeStyle = this.color;
  ctx.fillStyle = this.color;
  ctx.beginPath();
  ctx.moveTo(this.x1, this.y1);
  // length of one spring's round
  var l = this.restLenght/(this.numRounds + 2);
  // Initial segment, from spring anchor point to the first round
  sPX = this.x1+l; sPY = this.y2;
  ctx.lineTo(sPX, sPY);
  // half width of spring's rounds
  var hw = 0.5*this.width;
  // half length of one spring's round
  var hl = 0.5*l;
  for(var i=0, n=this.numRounds; i<n; i++) {
  	cP1X = sPX + hl*i; cP1Y = sPY + hw;
    cP2X = sPX + l*i; cp2Y = sPY + hw;
    ePX = sPX + l*i; ePY = sPY;
  	ctx.bezierCurveTo(cP1X,cP1Y,cP2X,cp2Y,ePX,ePY);
  	cP1X = sPX + hl*i; cP1Y = sPY - hw;
    cP2X = sPX + l*i; cp2Y = sPY - hw;
    ePX = sPX + l*i; ePY = sPY;
  	ctx.bezierCurveTo(cP1X,cP1Y,cP2X,cp2Y,ePX,ePY);
  }
  // Final segment, from last springs round to the center of mass
  ctx.lineTo(this.x2, this.y2);
  ctx.closePath();
  ctx.fill();
  ctx.stroke();
  ctx.restore();
};

function Box(w, h, mx, my) {
  this.x = 0;
  this.y = 0;
  this.w = w;
  this.h = h;
  this.mx = mx;
  this.my = my;
  this.vx = 0;
  this.vy = 0;
  this.rotation = 0;
  this.color = "red";
  this.lineWidth = 1;
}

Box.prototype.draw = function(ctx) {
  ctx.save();
  ctx.translate(this.x, this.y);
  ctx.rotate(this.rotation);
  ctx.lineWidth =...