第5章gdi与图像处理(编辑修改稿)内容摘要:

的方式,其值可以是以下枚举成员之一。 Clamp:纹理或渐变没有平铺; Tile:平铺渐变或纹理; TileFlipX:水平反转纹理或渐变,然后平铺该纹理或渐变; TileFlipY垂直反转纹理或渐变,然后平铺该纹理或渐变; TileFlipXY:水平和垂直反转纹理或渐变,然后平铺该纹理或渐变。 三、画刷 167。 GDI+绘图基础 Graphics ^pGH = eGraphics。 Rectangle rcCircle=Rectangle(0,0,100,100)。 (20,20)。 Image ^img=thisBackgroundImage。 Rectangle rc1=Rectangle(0,0,30,30)。 (imgWidth/2,imgHeight/2)。 //画出取纹理图像的区域 pGHDrawRectangle(Pens::White,rc1)。 //定义纹理画刷 System::Drawing::TextureBrush ^brush= gew System::Drawing::TextureBrush(img,rc1)。 //按默认平铺方式填充 pGHFillRectangle(brush,rcCircle)。 pGHDrawRectangle(Pens::White,rcCircle)。 //按 Clamp方式填充 (120,0)。 brushWrapMode= Drawing2D::WrapMode::Clamp。 pGHFillRectangle(brush,rcCircle)。 pGHDrawRectangle(Pens::White,rcCircle)。 //按 TileFlipX方式填充 (120,0)。 brushWrapMode= Drawing2D::WrapMode::TileFlipX。 pGHFillRectangle(brush,rcCircle)。 pGHDrawRectangle(Pens::White,rcCircle)。 //按 TileFlipY方式填充 (120,0)。 brushWrapMode= Drawing2D::WrapMode::TileFlipY。 pGHFillRectangle(brush,rcCircle)。 pGHDrawRectangle(Pens::White,rcCircle)。 //按 TileFlipXY方式填充 (120,0)。 brushWrapMode= Drawing2D::WrapMode::TileFlipXY。 pGHFillRectangle(brush,rcCircle)。 pGHDrawRectangle(Pens::White,rcCircle)。 3. 阴影画刷 (HatchBrush) 阴影画刷是一种由阴影样式、前景色和背景色属性构成的画刷,通过 HatchBrush类的构造函数可以直接创建一个阴影画刷。 HatchBrush类的构造函数的原型如下: HatchBrush( HatchStyle hatchstyle, Color foreColor)。 HatchBrush( HatchStyle hatchstyle, Color foreColor, Color backColor)。 hatchstyle:指定可用于 HatchBrush对象的不同图案。 三、画刷 167。 GDI+绘图基础 例:在 Paint事件处理函数中添加 Graphics ^pGH = eGraphics。 pGHTranslateTransform(10,10)。 //获取 HatchStyle所有值的名称 Array ^styleName=Enum::GetNames(Drawing2D::HatchStyle::typeid)。 //定义图例和样式名称显示的起点 Rectangle hatchrect=Rectangle(0,0,100,20)。 PointF pt。 //绘制图例和样式名称 Int32 i=0。 while(istyleNameLength) { Object ^oitem=styleNameGetValue(i)。 //将指定字符串转换成 HatchStyle枚举对象 Object ^ohs=Enum::Parse(Drawing2D::HatchStyle::typeid, oitemToString())。 //将 Object转换成 HatchStyle枚举类型 Drawing2D::HatchStyle hs= safe_castDrawing2D::HatchStyle (ohs)。 Drawing2D::HatchBrush ^brush=gew Drawing2D::HatchBrush (hs,Color::Black,Color::LightSkyBlue)。 //构造阴影画刷 pGHFillRectangle(brush,hatchrect)。 //填充矩形 //绘制样式名称 =float()。 =float()。 pGHDrawString(oitemToString(), thisFont,Brushes::Black,pt)。 (130,0)。 if(e) { (0,40)。 =0。 } i++。 } 4. 渐变画刷 GDI+提供两种渐变画刷: LinearGradientBrush (线性渐变)和 PathGradientBrush(路径渐变画刷)。 线性渐变: 路径渐变: 三、画刷 渐变画刷的创建及属性设置主要通过 LinearGradientBrush 和 PathGradientBrush类的构造函数进行。 167。 GDI+绘图基础 四、基本绘图函数 167。 GDI+绘图基础 Graphics的 SmoothingMode属性用于指定是否将平滑处理(消除锯齿)应用于直线、曲线或已填充区域的边缘。 SmoothingMode::AntiAlias:消除锯齿。 SmoothingMode::Default:不消除锯齿; SmoothingMode::HighQuality:高质量平滑处理,但处理速度慢; SmoothingMode::HighSpeed:高速度平滑处理,但处理质量较低。 SmoothingMode::Invalid:指定一个无效模式; SmoothingMode::None:指定不消除锯齿。 四、基本绘图函数 167。 GDI+绘图基础 实例:根据鼠标指定的一组点来画出连续折线、封闭多边形和样条曲线。 ( 1)创建一个 Windows窗体应用程序项目 Win_Curve。 ( 2)为 Form1窗体添加一个 Panel、一个 Group控件。 在组框中添加三个单选按钮, Text分别设为“连续折线”、“封闭多边形”和“样条曲线”。 最后再添加一个按钮, Text设为“清除”。 设置有关属性。 ( 3)为 Form1添加如下私有成员,并为 Panel控件添加 Paint事件。 private:static ArrayList ^points=gew ArrayList()。 private:Point ptPrev。 16。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。