revised translation using matrix3d multiplication