- 1、本文档共64页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验 5.2.2 画刷Brush类 4.LinearGradientBrush渐变画刷 在创建渐变画刷对象时,除需要指定渐变的起始色和结束色外,还需要由Rectangle结构或Point结构指定渐变的范围和速度。如果实际填充的图形区域比这个范围小,则只有部分的颜色被填充到区域中;如果实际填充的图形区域比这个范围大,则渐变颜色会被重复多次以填充整个区域。例如: Rectangle rect(0, 0, 100, 100); // 渐变范围 LinearGradientBrush^ brush = gcnew LinearGradientBrush(rect, Color::Red, Color::Black, LinearGradientMode::ForwardDiagonal); // 渐变画刷 画刷 5. 路径渐变画刷(PathGradientBrush) PathGradientBrush类封装了路径渐变画刷功能,它常用的构造函数如下: PathGradientBrush( GraphicsPath^ path); PathGradientBrush( arrayPoint^ points); PathGradientBrush( arrayPoint^ points, WrapMode wrapMode); 【例Ex_Gradient】使用渐变画刷 ? 创建一个Windows窗体应用程序Ex_Gradient。在打开的窗体设计器中,单击Form1窗体,在窗体属性窗口中,将Text属性内容修改成“使用渐变画刷”。 ? 将窗体属性窗口切换到事件页面,为窗体添加Paint事件处理方法On_Paint,并添加下列代码。 Graphics^ pGH = e-Graphics; double r = 50.0; // 正六边形外接圆直径 double angle = 0.0; arrayPoint^ pt = gcnew arrayPoint(6); for (int i=0; i6; i++) // 计算六边形顶点坐标 { pt[i].X = (int)( r * Math::Cos( angle )) + 50; pt[i].Y = (int)( r * Math::Sin( angle )) + 50; angle += 60.0 * Math::PI / 180.0; } // 定义各个点的颜色 arrayColor^ colors = gcnew arrayColor(6); colors[0] = Color::Red; colors[1] = Color::Green; colors[2] = Color::Blue; colors[3] = Color::AliceBlue; colors[4] = Color::LightPink; colors[5] = Color::Azure; // 定义并创建一个正六边形路径 Drawing2D::GraphicsPath^ path = gcnew Drawing2D::GraphicsPath(); path-AddLines( pt ); // 创建一个路径渐变画刷 Drawing2D::PathGradientBrush^ pathBrush = gcnew Drawing2D::PathGradientBrush( path ); // 或直接通过点来创建 // Drawing2D::PathGradientBrush^ pathBrush = // gcnew Drawing2D::PathGradientBrush( pt ); ? 编译运行,调整窗体大小,绘制的内容完全显示出来,结果如图9.8所示。 pathBrush-CenterPoint = Point( 30, 30 ); pathBrush-CenterColor = Color::Yellow; pathBrush-SurroundColors = colors; // 创建一个线性渐变画刷 Drawing2D::LinearGradientBrush^ lineBrush = gcnew Drawing2D::LinearGradientBrush( Rectangle(0,0,20,20) , Color::Red, Color::Bl
文档评论(0)