教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 学前教育 >

C++ GDI+ - 画刷、矩阵、基本绘图函数、文字、图像

来源:网络收集 时间:2025-11-05
导读: C++ GDI+ 画刷、矩阵、基本绘图函数、文字、图像 主要画刷 单色画刷SolidBrush SolidBrush(const Color 网格画刷HatchBrush HatchBrush( HatchStyle hatchStyle, const Color backColor); foreColor和backColor用来指定阴影线颜色和填充的背景颜色,背景色可

C++ GDI+ 画刷、矩阵、基本绘图函数、文字、图像

主要画刷

单色画刷SolidBrush

SolidBrush(const Color& color ); 网格画刷HatchBrush

HatchBrush( HatchStyle hatchStyle, const Color& foreColor, const Color& backColor);

foreColor和backColor用来指定阴影线颜色和填充的背景颜色,背景色可以不指定。hatchStyle用来指定阴影线的样式。 预定义样式:

HatchStyleHorizontal (水平线) HatchStyleVertical(垂直线)

HatchStyleForwardDiagonal(上斜线) HatchStyleBackwardDiagonal(下斜线) HatchStyleCross(十字线)

HatchStyleDiagonalCross (交叉线) HatchStyle30Percent(30%填充) HatchStyleSolidDiamond (实心菱形) 直线渐变LinearGradientBrush

LinearGradientBrush( Point & point1, Point & point2, Color & color1, Color & color2);

LinearGradientBrush( Rect & rect, Color & color1, Color & color2, REAL angle, BOOL isAngleScalable );

LinearGradientBrush( Rect & rect, Color & color1, Color & color2, LinearGradientMode mode);

point1和point2分别用来指定矩形区域的左上角和右下角点坐标。 color1和color2分别用来指定 渐变起始和终止的颜色。

rect用来指定一个矩形区域的大小和位置,angle用来指定渐变的方向角度,正值为顺时针。

isAngleScalable是一个即将废除的参数。mode用来指定渐变的方法。 预定义样式:

LinearGradientModeHorizontal (水平方向) LinearGradientModeVertical (垂直方向)

LinearGradientModeForwardDiagonal (从左下到右上的对角线方向) LinearGradientModeBackwardDiagonal (从左上到右下的对角线方向)

路径渐变PathGradientBrush

PathGradientBrush( const GraphicsPath* path);

PathGradientBrush( const Point * points, INT count, WrapMode wrapMode);

path用来指定一个路径指针,points和count分别用来指定组成路径的一系列直线端点的数组及其大小, wrapMode是一个可选项,用

来指定填充的包围模式。一个包围模式用来决定是否在区域内部、在区域外部以及所有区域都填充。默认时,其值为 WrapModeClamp,即在区域内部填充。 图像画刷TextureBrush

TextureBrush(Image*, WrapMode);

矩阵

图形变换一般是对图形的几何信息经过几何变换后产生新的图形。常见二维图形的变换有平移、比例、对称、旋转、错切 等。图形几何变换最有效的手段是采用矩阵变换,GDI+就有这样的矩阵类Matrix,它为我们提供了许多变换的方法,如Invert(转置)、 Multiply(矩阵相乘)、Rotate(旋转)等。

需要说明的是,除了使用Matrix进行图形变换外,Graphics本身提供相应的变换方法,如RotateTransform(旋转变换)、

ScaleTransform(比例变换)和TranslateTransform(平移变换)等。

基本绘图函数

绘图函数 功能描述

DrawArc 绘制一条圆弧曲线,范围由起止角大小决定,大小由矩形或长宽值指定

DrawBezier 绘制一条由一系列型值顶点决定的三次Bezier曲线 DrawBeziers 绘制一系列的三次Bezier曲线

DrawClosedCurve 绘制一条封闭的样条曲线 DrawCurve 绘制一条样条曲线

DrawEllipse 绘制一条椭圆轮廓线,大小由矩形或长宽值指定 DrawLine 绘制一条直线

DrawPath 绘制由GraphicsPath定义的路径轮廓线 DrawPie 绘制一条扇形(饼形)轮廓线 DrawPolygon 绘制一个多边形的轮廓线 DrawRectangle 绘制一个矩形 FillEllipse 填充一个椭圆区域 FillPath 填充一个由路径指定的区域 FillPie 填充一个扇形(饼形)区域 FillPolygon 填充一个多边形区域 FillRectangle 填充一个矩形区域

FillRectangles 用同一个画刷填充一系列矩形区域 FillRegion 填充一个区域(Region)的内部

文字

Font( FontFamily* , REAL , INT , Unit ) 字体的主要构造函数 FontFamily fontFamily(L\幼圆\//定义字型

Font font(&fontFamily, 12, FontStyleRegular, UnitPoint); //定义字体

FontFamily * : 指向用来定义字型的类的指针。

REAL : 字号,这里的字号可以使用小数定义。而且字号的单位也是由第4个参数指定的。

INT : 字体风格,FontStyleRegular(正常)、FontStyleBold(加粗)、 FontStyleItalic(斜体)、FontStyleBoldItalic (粗斜体)、FontStyleUnderline(下划线) 和FontStyleStrikeout(删除线)。 Unit : GDI+为用户提供了UnitDisplay(1/75英寸)、UnitPixel(像素)、UnitPoint(点)、UnitInch(英寸)、UnitDocument(1/300英寸)、UnitMillimeter(毫米)等字体尺寸单位。 为了兼容GDI 字体还有其他的几个构造函数

Font( HDC hdc, const LOGFONTW* logfont) 是其中比较常用的构造函数之一,可以看出是完全与GDI兼容的。 GDI+只有一个输出文本的函数DrawString,原型如下

DrawString( const WCHAR* string, INT length, const Font* font, const RectF& layoutRect, const StringFormat* stringFormat, const Brush* brush );

DrawString( const WCHAR* string, INT length, const Font* font, const PointF& origin, const Brush* brush );

DrawString( const WCHAR* string, INT length, const Font* font, const PointF& origin, const StringFormat* stringFormat, const Brush* brush);

其中,string用来指定要输出的字符串,length表示该字符串的长度,font用来指定字体, layoutRect用来指定一个字符串所输出的矩形

…… 此处隐藏:1129字,全部文档内容请下载后查看。喜欢就下载吧 ……
C++ GDI+ - 画刷、矩阵、基本绘图函数、文字、图像.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/593712.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)