Code Bye

C# graphics旋转后标注的字不旋转

C# 用graphics画图,想实现任何角度的旋转,但是旋转180度时,字体也会旋转为倒着的,有什么办法让字体变成正的呢?试过很多方法都不行,有没有办法找到旋转后字体的坐标,然后再旋转回来?谢谢,跪求
解决方案

10

可能你要把图元数据分成两层,即图层,以及标注层(文字层)。
图层,包含标注的锚点。
图层旋转后,得到旋转后的锚点。
在锚点上添加标注。

30

给你个方法供参考
        protected override void OnPaint(PaintEventArgs e)
        {
            var g = e.Graphics;
            g.SmoothingMode = SmoothingMode.AntiAlias;
            g.TranslateTransform(ClientRectangle.Width / 2, ClientRectangle.Height / 2);
            for (var a = 0; a < 360; a += 30)
            {
                using (var p = new GraphicsPath())
                {
                    g.DrawLine(Pens.Black, 0, 0, 140, 0);
                    p.AddString("方向角" + a, new FontFamily("幼圆"), 1, 10, new Point(50, 2), new StringFormat());
                    if (a > 90 && a<270)
                    {
                        p.Transform(new Matrix(-1, 0, 0, -1, 150, 0));
                    }
                    g.FillPath(Brushes.Black, p);
                    g.RotateTransform(30);
                }
            }
            
        }


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C# graphics旋转后标注的字不旋转