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