一些关于GDI+的文字——图形容器
来源:百度文库 编辑:神马文学网 时间:2024/04/28 06:01:08
标 题: 一些关于GDI+的文字——图形容器
发信站: 浙江大学海纳百川站 (Tue Oct 26 11:55:40 2004), 转信
图形状态(剪辑区域、变形和质量设置)存储在 Graphics 对象中。GDI+ 允许您通过
使用容器来临时替换或增加 Graphics 对象中状态的组成部分。您可以通过调用 Graph
ics 对象的 BeginContainer 方法来启动容器,通过调用 EndContainer 方法来结束容
器。在 BeginContainer 和 EndContainer 之间,您对 Graphics 对象做出的任何状态
更改都属于容器,且不改写 Graphics 对象的现有状态。
下面的示例在 Graphics 对象中创建容器。Graphics 对象的全局变形是向右平移 200
个单位,而容器的全局变形是向下平移 100 个单位。
myGraphics.TranslateTransform(200, 0);
myGraphicsContainer = myGraphics.BeginContainer();
myGraphics.TranslateTransform(0, 100);
myGraphics.DrawRectangle(myPen, 0, 0, 50, 50);
myGraphics.EndContainer(myGraphicsContainer);
myGraphics.DrawRectangle(myPen, 0, 0, 50, 50);
请注意,在前面的示例中,在调用 BeginContainer 和 EndContainer 之间执行语句 m
yGraphics.DrawRectangle(0, 0, 50, 50) 与在调用 EndContainer 之后执行同一语句
,会产生不同的矩形。只有水平变形应用于在容器外做出的 DrawRectangle 调用。两种
变形(横向平移 200 个单位及纵向平移 100 个单位)都应用于在容器内做出的 DrawR
ectangle 调用。
容器可以嵌套在另一容器中。下面的示例在 Graphics 对象中创建容器,并在第一个容
器中创建另一容器。Graphics 对象的全局变换是在 x 方向平移 100 个单位,在 y 方
向平移 80 个单位。第一个容器的全局变形是旋转 30 度。第二个容器的全局变形是在
x 方向缩放 2 倍。对 DrawEllipse 方法的调用是在第二个容器内做出的。
myGraphics.TranslateTransform(100, 80, MatrixOrder.Append);
container1 = myGraphics.BeginContainer();
myGraphics.RotateTransform(30, MatrixOrder.Append);
container2 = myGraphics.BeginContainer();
myGraphics.ScaleTransform(2, 1);
myGraphics.DrawEllipse(myPen, -30, -20, 60, 40);
myGraphics.EndContainer(container2);
myGraphics.EndContainer(container1);
请注意,所有三种变形都应用于在第二个容器内做出的 DrawEllipse 调用。另外请注意
变形的顺序:先缩放,再旋转,然后平移。最先应用最里面的变形,最后应用最外面的
变形。
Graphics 对象的任何属性均可在容器内(对 BeginContainer 和 EndContainer 的调用
之间)设置。例如,可在容器内设置剪辑区域。在容器内完成的任何绘图都将受制于该
容器的剪辑区域,并将受制于任何外部容器的剪辑区域和 Graphics 对象自身的剪辑区
域。
迄今为止所讨论的属性(全局变形和剪辑区域)由嵌套的容器合并。嵌套的容器可临时
替换其他属性。例如,如果在容器内将 SmoothingMode 属性设为 SmoothingMode.Anti
Alias,那么在该容器内调用的任何绘图方法就都将使用AntiAlias 平滑模式,但在 En
dContainer 之后调用的绘图方法将使用在调用 BeginContainer之前就位的平滑模式。
--
■■■■■■■■■■■■■■■■■■■■■■■■
这个世界只有10种人,懂二进制的和不懂二进制的
■■■■■■■■■■■■■■■■■■■■■■■■
jackyang@cs.zju since 2001
※ 来源:·浙江大学海纳百川站 bbs.zju.edu.cn·[FROM: jackyang]
发信站: 浙江大学海纳百川站 (Tue Oct 26 11:55:40 2004), 转信
图形状态(剪辑区域、变形和质量设置)存储在 Graphics 对象中。GDI+ 允许您通过
使用容器来临时替换或增加 Graphics 对象中状态的组成部分。您可以通过调用 Graph
ics 对象的 BeginContainer 方法来启动容器,通过调用 EndContainer 方法来结束容
器。在 BeginContainer 和 EndContainer 之间,您对 Graphics 对象做出的任何状态
更改都属于容器,且不改写 Graphics 对象的现有状态。
下面的示例在 Graphics 对象中创建容器。Graphics 对象的全局变形是向右平移 200
个单位,而容器的全局变形是向下平移 100 个单位。
myGraphics.TranslateTransform(200, 0);
myGraphicsContainer = myGraphics.BeginContainer();
myGraphics.TranslateTransform(0, 100);
myGraphics.DrawRectangle(myPen, 0, 0, 50, 50);
myGraphics.EndContainer(myGraphicsContainer);
myGraphics.DrawRectangle(myPen, 0, 0, 50, 50);
请注意,在前面的示例中,在调用 BeginContainer 和 EndContainer 之间执行语句 m
yGraphics.DrawRectangle(0, 0, 50, 50) 与在调用 EndContainer 之后执行同一语句
,会产生不同的矩形。只有水平变形应用于在容器外做出的 DrawRectangle 调用。两种
变形(横向平移 200 个单位及纵向平移 100 个单位)都应用于在容器内做出的 DrawR
ectangle 调用。
容器可以嵌套在另一容器中。下面的示例在 Graphics 对象中创建容器,并在第一个容
器中创建另一容器。Graphics 对象的全局变换是在 x 方向平移 100 个单位,在 y 方
向平移 80 个单位。第一个容器的全局变形是旋转 30 度。第二个容器的全局变形是在
x 方向缩放 2 倍。对 DrawEllipse 方法的调用是在第二个容器内做出的。
myGraphics.TranslateTransform(100, 80, MatrixOrder.Append);
container1 = myGraphics.BeginContainer();
myGraphics.RotateTransform(30, MatrixOrder.Append);
container2 = myGraphics.BeginContainer();
myGraphics.ScaleTransform(2, 1);
myGraphics.DrawEllipse(myPen, -30, -20, 60, 40);
myGraphics.EndContainer(container2);
myGraphics.EndContainer(container1);
请注意,所有三种变形都应用于在第二个容器内做出的 DrawEllipse 调用。另外请注意
变形的顺序:先缩放,再旋转,然后平移。最先应用最里面的变形,最后应用最外面的
变形。
Graphics 对象的任何属性均可在容器内(对 BeginContainer 和 EndContainer 的调用
之间)设置。例如,可在容器内设置剪辑区域。在容器内完成的任何绘图都将受制于该
容器的剪辑区域,并将受制于任何外部容器的剪辑区域和 Graphics 对象自身的剪辑区
域。
迄今为止所讨论的属性(全局变形和剪辑区域)由嵌套的容器合并。嵌套的容器可临时
替换其他属性。例如,如果在容器内将 SmoothingMode 属性设为 SmoothingMode.Anti
Alias,那么在该容器内调用的任何绘图方法就都将使用AntiAlias 平滑模式,但在 En
dContainer 之后调用的绘图方法将使用在调用 BeginContainer之前就位的平滑模式。
--
■■■■■■■■■■■■■■■■■■■■■■■■
这个世界只有10种人,懂二进制的和不懂二进制的
■■■■■■■■■■■■■■■■■■■■■■■■
jackyang@cs.zju since 2001
※ 来源:·浙江大学海纳百川站 bbs.zju.edu.cn·[FROM: jackyang]
一些关于GDI+的文字——图形容器
一些关于GDI+的文字——新增功能
一些关于GDI+的文字——编程模式的变化
一些关于GDI+的文字——图像、位图和metafile
GDI(图形设备接口)
GDI(图形设备接口)
使用GDI+对图像处理的一些C#代码
关于STL里面容器的选择问题?
文革的影子—一些不算纪念的文字
文革的影子—一些不算纪念的文字
用 GDI 开发矢量图形编辑系统的经验之谈 - 及时消息和ERP系统的集成(Instan...
好—关于人生关于爱情的一些感悟
[常见问题] 一些实用的图形用户界面方法
一些别人留下的文字
一些别人留下的文字...
Java容器分析—List和Set
关于徐志摩的文字
用word把 文字图形图片的组合编辑
Free OCR----把图形文档里的文字抠出来
Powerpoint2000对象(文字、图形、图像等)动画的
用word把 文字图形图片的组合编辑1
现在,我们要检查一些可以补充算法复杂度的重要的容器相关问题,但首先我需要介绍一种STL容器的分类
现在,我们要检查一些可以补充算法复杂度的重要的容器相关问题,但首先我需要介绍一种STL容器的分类
轻量级容器的比较