blob draw body
this.drawBody = function(ctx, scaleFactor)
{
var i;
ctx.strokeStyle = "#000000";
if(this.selected == true)
{
ctx.fillStyle = "#FFCCCC";
}
else
{
ctx.fillStyle = "#FFFFFF";
}
ctx.lineWidth = 5;
ctx.beginPath();
ctx.moveTo(this.pointMasses[0].getXPos() * scaleFactor,
this.pointMasses[0].getYPos() * scaleFactor);
for(i = 0; i < this.pointMasses.length; i++)
{
var px, py, nx, ny, tx, ty, cx, cy;
var prevPointMass, currentPointMass, nextPointMass, nextNextPointMass;
prevPointMass = this.getPointMass(i - 1);
currentPointMass = this.pointMasses[i];
nextPointMass = this.getPointMass(i + 1);
nextNextPointMass = this.getPointMass(i + 2);
tx = nextPointMass.getXPos();
ty = nextPointMass.getYPos();
cx = currentPointMass.getXPos();
cy = currentPointMass.getYPos();
px = cx * 0.5 + tx * 0.5;
py = cy * 0.5 + ty * 0.5;
nx = cx - prevPointMass.getXPos() + tx - nextNextPointMass.getXPos();
ny = cy - prevPointMass.getYPos() + ty - nextNextPointMass.getYPos();
px += nx * 0.16;
py += ny * 0.16;
px = px * scaleFactor;
py = py * scaleFactor;
tx = tx * scaleFactor;
ty = ty * scaleFactor;
ctx.bezierCurveTo(px, py, tx, ty, tx, ty);
}
ctx.closePath();
ctx.stroke();
ctx.fill();
}
this.drawSimpleBody = function(ctx, scaleFactor)
{
for(i = 0; i < this.sticks.length; i++)
{
this.sticks[i].draw(ctx, scaleFactor);
}
}