I'm not sure. Maybe the interpolation somehow intermingles with the scale (which is part of the matrix). Try to store the current scale, set it to one, then do the interpolation, then set the scale back to what it was. Also make sure to use setScale(), not scale() (which is relative).