Сначала масштабируйте его по горизонтали, а затем по вертикали. Если он равен 45 градусам, вы будете масштабировать одинаково в обоих направлениях, если вы используете другой угол, вы можете вычислить шкалы, используя простые функции sin / cos.
EDIT:
C # пример:
float angle = 70; // Direction in degrees
float amount = 1; // By how many percent (1 = 100 %)
float radAngle = (angle / 180) * Math.PI;
float xratio = (1 + Math.cos(radAngle)) * amount;
float yratio = (1 + Math.sin(radAngle)) * amount;
// Then just make a new Vector2(xratio, yratio)
Остерегайтесь ошибок в этом примере, я не проверял это. Разве вам не будет проще растянуть спрайт, используя Vector2 напрямую?
SpriteBatch.Draw(/* Some stuff */, new Vector2(2.0, 3.0), /* some more stuff */); // Scale 2x in horizontal and 3x in vertical direction