Вы можете использовать матрицу вращения:
cos(alpha) sin(alpha);
-sin(alpha) cos(alpha)
Если alph = 90
, то получим эту матрицу
0 1;
-1 0
Итак, новая точка расчета: Xnew = Yold and Ynew = - Xold
Например,
g.DrawString(str, new Font("Arial", 16), new SolidBrush(Color.Black), 50, 25);
g.RotateTransform(90);
g.DrawString(str, new Font("Arial", 16), new SolidBrush(Color.Black),25+8, -50-8);
g.ResetTransform();
другой пример с углом 180 °
Xnew = минусы (альфа) * Xold + грех (альфа) Yold
Yold = -син (альфа) * Xold + минусы (альфа) Yold
Xnew = - Xold и Ynew = -Yold
g.RotateTransform(180);
g.DrawString(str, new Font("Arial", 16), new SolidBrush(Color.Black), -50-8 , -25-8);
g.ResetTransform();
, который 8 - размер строчного шрифта, деленный на 2.
С уважением,