Я хотел бы нарисовать текст, который поворачивается на х градусов. В связи с тем, что я не поворачиваю его вокруг его центральной точки, я тоже хочу указать смещение.
Сначала я поворачиваю прямоугольник вокруг пользовательской точки вращения
graphics.RotateAtTransform(RotationInDegrees, pivotPoint);
, и я знаю,Я могу переместить преобразование с помощью
graphics.TranslateTransform(offsetX, offsetY);
, но чтобы рассчитать смещение, мне нужно знать новые направления, поэтому верх может быть теперь снизу на 180 градусов.
У меня есть двухмерный вектор, представляющийсистема координат, где центр находится в точке (0 | 0), вверху слева (-1 | 1), внизу справа (1 | -1) и т. д. Поэтому в основном я мог сначала повернуть, а затем нарисовать текст
textFormatter.DrawString(watermarkContent, Font, Brush, textBox, Format);
и после рисования текстового поля я его перевожу. Тогда я мог бы использовать этот расчет, чтобы узнать правильный поворот
graphics.TranslateTransform(alignmentVector.X * -horizontalOffset, alignmentVector.Y * verticalOffset);
, но это невозможно. Сначала я должен применить преобразования и нарисовать в конце. Так как же правильно применить горизонтальное и вертикальное смещение к прямоугольнику (зная правильное направление) после поворота?