变换

发布时间:2017-2-21 6:21:45 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"变换",主要涉及到变换方面的内容,对于变换感兴趣的同学可以参考一下。

变换有:缩放、平移、旋转以及错位变换。(通用坐标系下) 用于变换的方法如下: 缩放变换: Graphics g = e.Graphics;             g.FillRectangle(Brushes.White, this.ClientRectangle);             g.DrawRectangle(Pens.Black, 10, 10, 50, 50);             g.DrawEllipse(Pens.Black, 10, 10, 10, 10);             g.ScaleTransform(2.0f, 3.0f);             g.DrawRectangle(Pens.Black, 10, 10, 50, 50);             g.DrawEllipse(Pens.Black, 10, 10, 10, 10); 如图: X方向扩大了两倍,Y方向扩大了三倍。同事笔画宽度也在方向上进行了扩大。 平移变换: Graphics g = e.Graphics;             g.FillRectangle(Brushes.White, this.ClientRectangle);             for (int i = 1; i <= 5; ++i)             {                 g.DrawRectangle(Pens.Black, 20, 20, 60, 100);                 g.TranslateTransform(4, 20);             } 如图: 每次都向X方向移动4,向Y方向移动20个像素。这个变换是积累的。如果想要非积累的,使用ResetTransform方法。 旋转变换: Graphics g = e.Graphics;             g.FillRectangle(Brushes.White, this.ClientRectangle);             Font f = new Font("Times New Roman", 16);             for (float angle = 0; angle < 360; angle += 45)             {                 g.ResetTransform();                 g.TranslateTransform(ClientRectangle.Width / 2, ClientRectangle.Height / 2);                 g.RotateTransform(angle);                 g.DrawString("Hello,World", f, Brushes.Black, 50, 0);             } 如图: 错位变换: Graphics g = e.Graphics;             g.FillRectangle(Brushes.White, ClientRectangle);             Matrix m = new Matrix();             m.Shear(0.6f, 0);             g.DrawRectangle(Pens.Black, 10, 10, 50, 50);             g.MultiplyTransform(m);             g.DrawRectangle(Pens.Black, 70, 10, 50, 50); 如图: 这个是由矩阵来的,比较麻烦。

上一篇:Linux环境下shell和vim中乱码原因及消除办法
下一篇:iOS7中容易被忽视的新特性

相关文章

关键词: 变换

相关评论