下载本文代码 见资源 |
by Bill Wagner
|
使用GDI+会大大地简化操作过程。Microsoft在新的图形设备接口实现中创建了一种一致的图形模型,它通过一套C++类来实现。
我写了一个简单的例子来说明用GDI+实现文字旋转是多么地容易。在例子中我把文字画在窗体的中间位置,它能够以任何角度进行旋转。GDI+中的两个特性使绘制过程变得简单:图形平移(graphics translations)和图形旋转(graphics rotations)。
要将文字居中显示,只需转换坐标系(coordinates)使原点(origin)置于窗体的中间位置:
Size sz = MyWindow.Size;Point Middle = new Point (sz.Width / 2, sz.Height / 2);e.Graphics.TranslateTransform (Middle.X, Middle.Y); |
通过继续变换来实现简单的旋转:
e.Graphics.RotateTransform (_angle); |
当位置调整好以后,你就可以绘制文字了:
StringFormat format = new StringFormat (StringFormatFlags.NoClip);format.Alignment = StringAlignment.Center;format.LineAlignment = StringAlignment.Center;e.Graphics.DrawString ("A simple TextString ", f, Brushes.Black, 0, 0, format); |
StringFormat对象控制着该字符串的对齐方式。这里,我选中了居中位置。
现在你能够以任何角度旋转字体了。在运行这段代码时,你会发现当它旋转到正45度角的时候,看起来却像是负45度角(见图1)。记住在GDI中标准的坐标系是y坐标向下的,在这种坐标系上,正角度的旋转是沿水平轴顺时针旋转的。
从这个例子可以看出,使用.NET的GDI+ API使得图形处理变得更简单更一致。点此下载源代码并修改转换角度。你会发现你能够以任何角度在任何平台绘制文字,这同样适用于以任何角度旋转任何其他形状的图形。
关于作者:
|
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow