Algunas cuestiones matematicas:
  Cita:  vx = v+Math.cos(ang);
vy = v+Math.sin(ang);
ve = Math.sqrt(vx*vx+vy*vy);
    ¿Has estudiado complejos, no? O weno, habrás visto el movimiento en polares. No es v+Math.cos(ang), sino v*Math.cos(ang). 
 Cita:  ve = Math.sqrt(vx*vx+vy*vy);
    Tu "ve" es la "v". sqrt(vx*vx+vy*vy) = sqrt(ve^2cos(ang)^2 + ve^2sen(ang)^2) = sqrt(ve^2(cos(ang)^2+sen(ang)^2)) = sqrt(ve^2) = ve 
P.D. Con Latex se verian bien las formulas xdddddddd
P.D.2 Mirate esto: 
http://www.tonypa.pri.ee/tbw/tut04.html