C# PDFsharp-绘制文本,围绕自定义轴点旋转并移动它

C# PDFsharp-绘制文本,围绕自定义轴点旋转并移动它,c#,pdfsharp,C#,Pdfsharp,我想画一个文本,它是围绕x度旋转。由于我不绕着它的中心点旋转它,所以我也想提供一个偏移量 首先,我围绕自定义轴点旋转矩形 graphics.RotateAtTransform(RotationInDegrees, pivotPoint); 我知道我可以用 graphics.TranslateTransform(offsetX, offsetY); 但是为了计算偏移量,我需要知道新的方向,所以顶部现在可能是底部180度 我有一个2D向量,表示一个网格系统,中心位于(0 | 0)、左上(-1 |

我想画一个文本,它是围绕x度旋转。由于我不绕着它的中心点旋转它,所以我也想提供一个偏移量

首先,我围绕自定义轴点旋转矩形

graphics.RotateAtTransform(RotationInDegrees, pivotPoint);
我知道我可以用

graphics.TranslateTransform(offsetX, offsetY);
但是为了计算偏移量,我需要知道新的方向,所以顶部现在可能是底部180度

我有一个2D向量,表示一个网格系统,中心位于(0 | 0)、左上(-1 | 1)、右下(1 |-1)等等。所以基本上我可以先旋转,然后绘制文本

textFormatter.DrawString(watermarkContent, Font, Brush, textBox, Format);
在画完文本框后,我翻译它。然后我可以用这个计算来知道正确的旋转

graphics.TranslateTransform(alignmentVector.X * -horizontalOffset, alignmentVector.Y * verticalOffset);

但这是不可能的。我必须先应用变换,然后在最后绘制。因此,如何在旋转后正确地(通过知道正确的方向)将水平和垂直偏移应用于矩形?

变换应用于设置变换后绘制的项目。这允许通过稍后更改变换,以30°的角度绘制文本,以60°的角度绘制其他文本

因此,在绘制文本之前,必须应用转换。转换也适用于用于绘制文本的“文本框”,无需更改该框

另请参见此示例:

谢谢,但在围绕自定义轴心点旋转文本框后,我想将其移动一个偏移量。但这需要我知道旋转的文本框,我想…旋转并移动XGraphics对象-文本框随着XGraphics对象移动,因为它只指定绘图区域的宽度和高度。检查上面链接的示例和其他使用转换的PDFsharp示例。我更新了我的问题,希望这能让一些事情变得更清楚。也许先应用偏移,然后应用旋转(将偏移应用到轴点),然后绘制文本更简单(不必关心任何转换,只需绘制文本)。