文档详情

河北网络_GDI+图形编程介绍.ppt

发布:2017-03-25约1.92万字共66页下载文档
文本预览下载声明
练习 从一个文本文件中读取出字符串,并在视图中分栏显示。 利用单色画刷,画出一个带有阴影线的文本行。 §4 路径和区域 路径 创建路径和添加图形 封闭图形与子路径 区域 创建路径和添加图形 创建 《参照路径渐变画刷》 添加图形 AddArc 添加弧线 AddBezier、AddBeziers 添加贝塞尔曲线(组) AddClosedCurve 添加封闭曲线 AddEllipse 添加椭圆 AddLine、AddLines 添加直线(组) AddPath 添加子路径 AddPie 添加饼图 AddPolygon 添加多边形 AddRectangle、AddRectangles 添加矩形(组) AddString 添加字符串 封闭图形与子路径 封闭图形 封闭图形,即图形的起点坐标与终点坐标相同。 由开放图形到封闭图形的转换:在图形的起点与终点之间添加一条直线。 CloseFigure、CloseAllFigures 子路径 路径中可以包含多个图形,每一个图形称之为子路径。 添加子路径:在路径对象中使用了StartFigure和CloseFigure后,对路径所添加的线条都将构成一个新的子路径。 获取子路径:GraphicsPathIterator 定制线性渐变画刷的色彩渐变行为 Status?SetBlend(? const REAL* blendFactors, const REAL* blendPositions, INT?count ); 线性渐变画刷的变换 旋转变换:RotateTransform Status?RotateTransform(REAL angle, MatrixOrder order = MatrixOrderPrepend); 缩放变换:ScaleTransform Status ScaleTransform(REAL sx, REAL sy, MatrixOrder order = MatrixOrderPrepend); 矩阵变换:SetTransform Status?SetTransform(const Matrix?*matrix ); 包含了合成因子的数组,每个数的大小为0~1 包含合成位置的数组,合成位置为百分比。首尾必须为0%和100% 合成点位置数,实际上为数组blendColors和数组blendPositions的大小 定制线性渐变画刷的色彩渐变与多色渐变结合时,需要预先处理定制线性渐变画刷的色彩渐变再设置多色渐变过程 示例: // 创建线性渐变画刷,并画一个圆形 LinearGradientBrush lbr(Point(0, 0), Point(100, 100), Color(255, 255, 0, 0), Color(255, 255, 255, 0)); g.FillEllipse(lbr, Rect(0, 0, 100, 100)); // 创建一个平铺排列方式(默认)线性渐变画刷,并画一个矩形 LinearGradientBrush lbrTile(Rect(120, 200, 20, 20), Color(255, 255, 0, 0), Color(255, 255, 255, 0), LinearGradientModeBackwardDiagonal); g.FillRectangle(lbrTile, Rect(120, 0, 100, 100)); //创建一个水平翻转排列方式线性渐变画刷,并画一个矩形 LinearGradientBrush lbrFlipX(Rect(240, 200, 20, 20), Color(255, 255, 0, 0), Color(255, 255, 255, 0), LinearGradientModeBackwardDiagonal); lbrFlipX.SetWrapMode(WrapModeTileFlipX); g.FillRectangle(lbrFlipX, Rect(240, 0, 100, 100)); // 创建一个线性渐变画刷,并指定多色渐变过程,画一个矩形 Color aClr[] = { Color(255, 255, 0, 0), Color(128, 255, 0, 0), Color(128, 255, 255, 0), Color(255, 255, 255, 0), Color(128, 0, 255, 0), Color(255, 0, 255, 0) }; REAL aPosition[] = {0.0f, 0.1f, 0.3f, 0.6f, 0.9f, 1.0f}; LinearGradientBrush lbrIn
显示全部
相似文档