首页 > 代码库 > Graphics 和 Matrix 使用注意

Graphics 和 Matrix 使用注意

Graphics 可以进行画图,Matrix 可以对画布内容进行变换

Font font = new Font("宋体", 1F);
//检测字符串大小
SizeF sizeF = CreateGraphics().MeasureString("abc", font);
//displayWidth为实际显示宽度,通过此方式将字体变大
float disX =(float)(displayWidth / sizeF.Width);
float disY = (float)(displayHeight / sizeF.Height);
 
Matrix matrix = new Matrix();
//对画布内容进行放大
matrix.Scale(disX, disY);
//这里用在panel上生成一个画布
Graphics g = this.drawingPanel.CreateGraphics();
g.Transform = matrix;
//这里是画布的显示位置,这里注意x,y的位置是相对于panel左上角的,且注意在进行Matrix 变换后,
//1像素的单位已经放大为disX,所以这里要除以 disX 求得实际像素距离
float x = (float)locationX / disX;
float y = (float)locationY / disY;
//
g.DrawString("abc", font, color, new RectangleF(x, y, (float)displayWidth, (float)displayHeight));


Graphics 和 Matrix 使用注意