【发布时间】:2020-09-02 09:57:22
【问题描述】:
我正在使用 Win2D 开发 UWP 应用程序,我需要使用 CanvasControl 绘图会话来旋转文本。我使用public void DrawText(string text, Vector2 point, Color color) 来渲染文本。
如何将文本旋转到任意角度?
【问题讨论】:
我正在使用 Win2D 开发 UWP 应用程序,我需要使用 CanvasControl 绘图会话来旋转文本。我使用public void DrawText(string text, Vector2 point, Color color) 来渲染文本。
如何将文本旋转到任意角度?
【问题讨论】:
在Win2D中,可以通过设置CanvasDrawingSession.Transform来实现旋转文本。
private void CanvasControl_Draw(CanvasControl sender, CanvasDrawEventArgs args)
{
CanvasDrawingSession ds = args.DrawingSession;
ds.Transform = Matrix3x2.CreateRotation(GetRadians(30));
ds.DrawText("Hello Win2D!", 10, 10, Colors.Red);
}
private float GetRadians(double angle)
{
return (float)(Math.PI * angle / 180.0);
}
值得一提的是Matrix3x2.CreateRotation的参数是以弧度为单位的。如果你喜欢用角度来表达,你需要转换。
这里的旋转以画布左上角为中心,如果需要自定义旋转中心,可以这样写:
ds.Transform = Matrix3x2.CreateRotation(GetRadians(30),new Vector2(30,30));
【讨论】: