corrected method to be implementation-independent (of IVector)
added angle of collision
added slowing down according to angle of collision