1. 程式人生 > >C# 矩陣變換Matrix

C# 矩陣變換Matrix

1、Matrix matrix = new Matrix();
2、matrix.Translate( offsetX, offsetY ); //Where offset is the new location
3、path.Transform( matrix ); //Transform the path

4、redraw the path via Invalidate()


數學家們將其統一為一個3*3矩陣,儲存形式如下:


由於表示仿射變換的矩陣的第三列總是(0,0,1),在儲存矩陣的時候,大多隻存成一個2*3的陣列。

System.Drawing.Graphics   //畫布
System.Drawing.Drawing2D.GraphicsPath   //畫圖路徑,也就是在圖上顯示的線
System.Drawing.Drawing2D.Matrix  //影象縮放物件

//g為Graphics物件 path為GraphicsPath物件
path.AddLine(Point1, Point2);  //在兩點間新增一條直線
path.AddArc(x,y,width,height,startAngle,sweepAngle); //新增弧線
path.AddPie(x,y,width,height,startAngle,sweepAngle); //新增扇形 
g.DrawPath(new Pen(Color.Gray, 1), path); //將路徑畫到畫布
g.FillEllipse(brush,x,y,width,height); //在畫布上畫一個橢圓
g.DrawLine(pen,point1,point2); //在畫布上畫一條直線
path.Transform(matrix);  //將影象按比例縮放
g.TranslateTransform(x, y, MatrixOrder.Prepend); //平移畫布