Кстати, вы можете использовать не рекурсивное выполнение функции по setTimeout, а установку её выполнения по интервалу, через функцию setInterval.
Для передачи параметров, в setTimeout вам нужно создать анонимную функцию, а использованная вами конструкция не поддерживается, т.е. setTimeout должен вызываться вот так:
setTimeout(function() { yvel(imgObj,w,h,h2,dw,dh,dt) }, dt);