请问TranslateTransform在这里有什么含义?

来源:百度知道 编辑:UC知道 时间:2024/05/10 08:05:18
我现在正在学GDI+编程,看到一段代码里有TranslateTransform的那一行,查了MSDN也不太理解,请指教!
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
int verticalCoord = margin;
Point topLeft;
InstalledFontCollection insFont = new
InstalledFontCollection();
FontFamily [] fam = insFont.Families;
e.Graphics.TranslateTransform(AutoScrollPosition.X,
AutoScrollPosition.Y);
foreach(FontFamily family in fam)
{
if(family.IsStyleAvailable(FontStyle.Regular))
{
……
e.Graphics.DrawString(family.Name,f, drawBrush, topLeft);
f.Dispose();
}
else
{
continue;
}
}
写不写这句话有什么区别?
谢谢!!!

原点通常在绘图图面的左上角。但如果窗体滚动,图象将失去
AutoScrollPosition.X,
AutoScrollPosition.Y这两个值就是全局坐标点转换为对应页面坐标点的横、纵偏移量。把它们与全局空间下的坐标点进行简单的矢量加运算,就可以变换为页面空间坐标

平移操作包括将变换矩阵乘以其平移部分为 x 和 y 参数的矩阵。此方法通过将平移矩阵添加到变换矩阵前面应用平移。