Graphics.DrawString 如何输出 旋转 镜像 的字体

时间:2023-02-10 21:57:50
由于更改了坐标原点和方向 
导致用Graphics.DrawString 输出了 旋转 镜像 的字体,
现在我想转回来请问如如何设置 

 g = pictureBox1.CreateGraphics();
g.TranslateTransform(10, this.pictureBox1.Height - 10);//使视图原点在(10,10)上
g.ScaleTransform(1, -1);
g.DrawString(no.ToString(), new Font("arial", 10, FontStyle.Regular), new SolidBrush(Color.Blue), cenpt);


Graphics.DrawString 如何输出 旋转 镜像 的字体

9 个解决方案

#1


画线的时候遇到问题,就想办法解决线的问题,而不是旋转整个画布
你规避了一个问题,会衍生出10个问题

#2


如果你画线的过程,旋转来旋转去,最后画布能够转回原来的角度的话,也有变通的解决办法
就是先画线,画线的时候不要写字
等画完了线,再计算字应该写在哪里
不过如果你能计算出来,直接画线就好了,也不用旋转画布了

#3


引用 2 楼 Z65443344 的回复:
如果你画线的过程,旋转来旋转去,最后画布能够转回原来的角度的话,也有变通的解决办法
就是先画线,画线的时候不要写字
等画完了线,再计算字应该写在哪里
不过如果你能计算出来,直接画线就好了,也不用旋转画布了


这些东西我在mfc时都试过,在那里是没有问题的,我也不知道来到C#就变成了问题,
现在都已经做到这一步了,那么字体本身有没有旋转的方法呢?

#4


方法是肯定有的
等我给你找找之前的贴子

#5


http://blog.csdn.net/zhangsongshan/article/details/4789845
看一下这个,希望对你有帮助

#6


他好像就是使用的旋转画布的方法来绘制的
其实你也可以先记住当前旋转的角度,画文字之前先把画布旋转到正常角度,画文字,画完再旋转回去

或者自行搜一下:GDI+旋转文字
应该不止一种方法

#7


引用 6 楼 Z65443344 的回复:
他好像就是使用的旋转画布的方法来绘制的
其实你也可以先记住当前旋转的角度,画文字之前先把画布旋转到正常角度,画文字,画完再旋转回去

或者自行搜一下:GDI+旋转文字
应该不止一种方法


你说的那种旋转好像是围绕原点转的哦,
这样一转位置都变了

#8


不行可以这样嘛:
先把要绘制的文字的坐标设置成原点,然后旋转,然后写字,然后转回去,把原点也设置回去
比较麻烦

上次有人贴出了自己绘制八卦图的代码
不过贴子找不到了
沉的好快

#9


引用 8 楼 Z65443344 的回复:
不行可以这样嘛:
先把要绘制的文字的坐标设置成原点,然后旋转,然后写字,然后转回去,把原点也设置回去
比较麻烦

上次有人贴出了自己绘制八卦图的代码
不过贴子找不到了
沉的好快

多谢了

#1


画线的时候遇到问题,就想办法解决线的问题,而不是旋转整个画布
你规避了一个问题,会衍生出10个问题

#2


如果你画线的过程,旋转来旋转去,最后画布能够转回原来的角度的话,也有变通的解决办法
就是先画线,画线的时候不要写字
等画完了线,再计算字应该写在哪里
不过如果你能计算出来,直接画线就好了,也不用旋转画布了

#3


引用 2 楼 Z65443344 的回复:
如果你画线的过程,旋转来旋转去,最后画布能够转回原来的角度的话,也有变通的解决办法
就是先画线,画线的时候不要写字
等画完了线,再计算字应该写在哪里
不过如果你能计算出来,直接画线就好了,也不用旋转画布了


这些东西我在mfc时都试过,在那里是没有问题的,我也不知道来到C#就变成了问题,
现在都已经做到这一步了,那么字体本身有没有旋转的方法呢?

#4


方法是肯定有的
等我给你找找之前的贴子

#5


http://blog.csdn.net/zhangsongshan/article/details/4789845
看一下这个,希望对你有帮助

#6


他好像就是使用的旋转画布的方法来绘制的
其实你也可以先记住当前旋转的角度,画文字之前先把画布旋转到正常角度,画文字,画完再旋转回去

或者自行搜一下:GDI+旋转文字
应该不止一种方法

#7


引用 6 楼 Z65443344 的回复:
他好像就是使用的旋转画布的方法来绘制的
其实你也可以先记住当前旋转的角度,画文字之前先把画布旋转到正常角度,画文字,画完再旋转回去

或者自行搜一下:GDI+旋转文字
应该不止一种方法


你说的那种旋转好像是围绕原点转的哦,
这样一转位置都变了

#8


不行可以这样嘛:
先把要绘制的文字的坐标设置成原点,然后旋转,然后写字,然后转回去,把原点也设置回去
比较麻烦

上次有人贴出了自己绘制八卦图的代码
不过贴子找不到了
沉的好快

#9


引用 8 楼 Z65443344 的回复:
不行可以这样嘛:
先把要绘制的文字的坐标设置成原点,然后旋转,然后写字,然后转回去,把原点也设置回去
比较麻烦

上次有人贴出了自己绘制八卦图的代码
不过贴子找不到了
沉的好快

多谢了