c#二维图形几何变换
时间: 2023-07-27 17:11:33 浏览: 45
在 C# 中,可以使用 System.Drawing 命名空间中的 Graphics 类来进行二维图形的几何变换。下面是一些常见的二维图形几何变换:
1. 平移:移动图形的位置。可以使用 TranslateTransform 方法实现。
```csharp
Graphics g = pictureBox1.CreateGraphics();
g.TranslateTransform(50, 50); // 将图形向右下平移 50 个像素
g.DrawEllipse(Pens.Black, 0, 0, 50, 50); // 在新位置绘制椭圆
```
2. 旋转:将图形绕某个点旋转一定角度。可以使用 RotateTransform 方法实现。
```csharp
Graphics g = pictureBox1.CreateGraphics();
g.TranslateTransform(50, 50); // 先将图形平移,使旋转点在原点处
g.RotateTransform(45); // 将图形绕原点旋转 45 度
g.DrawEllipse(Pens.Black, 0, 0, 50, 50); // 在新位置绘制椭圆
```
3. 缩放:按照一定比例缩小或放大图形。可以使用 ScaleTransform 方法实现。
```csharp
Graphics g = pictureBox1.CreateGraphics();
g.ScaleTransform(2, 2); // 将图形放大两倍
g.DrawEllipse(Pens.Black, 0, 0, 50, 50); // 在新位置绘制椭圆
```
4. 剪切:只显示图形的一部分。可以使用 SetClip 方法实现。
```csharp
Graphics g = pictureBox1.CreateGraphics();
g.SetClip(new Rectangle(0, 0, 50, 50)); // 只显示左上角的 50x50 区域
g.DrawEllipse(Pens.Black, 0, 0, 100, 100); // 绘制一个 100x100 的椭圆
```
注意:以上变换方法都是在当前 Graphics 对象的基础上进行的,所以需要先使用 TranslateTransform 方法将图形移动到变换的中心点(如果需要的话)。另外,应该先保存 Graphics 对象的初始状态,进行变换后再恢复,以避免对后续绘图产生影响。