计算机图形学--MFC绘图

绘图函数

CDC类

CDC是设备上下文类,封装了绘图的成员函数,一般用pDC定义CDC类的指针。

简单数据类型

1.CPoint 类 主要定义点坐标

2.CRect类 定义矩形

CRect::Width 计算宽度函数
CRect::Height 计算高度函数
CRect::CenterPoint 计算中心点函数
CRect::InflateRect 扩大矩形函数
CRect::DeflateRect 缩小矩形函数
CRect::offsetRect 移动矩形函数

绘图工具类

将图像显示在屏幕上的过程,叫做映射。根据映射模式的不同,分为逻辑坐标和设备坐标,逻辑坐标的单位是米制尺度或英制尺度。

1.设备坐标系

设备坐标系的原点位于客户区的左上角,水平向右为x轴,y轴垂直向下,设备坐标基本单位为1个像素。

2.设置映射模式函数

CDC::SetMapMode

3.设置窗口范围函数

CDC::SetWindowExt

4.设置视区范围函数

CDC::SetViewportExt

5.设置窗口原点函数

CDC::SetWindowOrg

6.设置视区原点函数

CDC::SetViewportOrg

创建画笔函数

CPen::CreatePen(),画笔的颜色用RGB宏定义,COLORREF是32位颜色数据类型

创建画刷函数

创建实体画刷函数

CBrush::CreateSolidBrush(),创建实体化刷函数,画刷仅对闭合图形有效,默认是白色画刷。

创建阴影画刷函数

CBrush::CreateHatchBrush(),

创建位图画刷函数

CBrush::CreatePatternBrush()

选入GDI对象

CDC::SelectObject

删除GDI对象

CDC::DeleteObject

CDC类绘图成员函数

直线绘制

MoveTo() LineTo()

像素点绘制

SetPixelV() 如果调用成功返回非0

获取像素点颜色

GetPiexl ,如果调用成功,返回指定像素的RGB值。

绘制矩形函数

CDC::Rectangle 绘制直角矩形
CDC::RoundRect (x1,y1,x2,y2,x3,y3) 绘制圆角矩形 ,x3,y3是圆角椭圆的宽度和高度。默认使用当前画刷填充圆角矩形内部,使用当前画笔绘制。

画刷填充矩形函数

CDC::FillRect(CRect,CBrush)

选择透明画刷

CDC::SelectStockObject(NULL_BRUSH),返回的数据类型,需要进行强制类型转换,比如(CBrush*)pDC->SelectStockObject(NULL_BRUSH)

绘制椭圆函数

CDC::Ellipse(CRect)

绘制椭圆弧函数

CDC::Arc(CRect,CPoint start,CPoint end),start圆弧起点坐标,end圆弧终点坐标。默认逆时针方向。
CDC::SetArcDirection(int nArcDirection)用于设置绘制圆弧的哪个方向。

绘制扇形函数

CDC::Pie(CRect,CPoint start,CPoint end),start圆弧起点坐标,end圆弧终点坐标。默认逆时针方向,扇形中心默认是外接矩形的中心位置,使用当前画刷填充矩形内部。

绘制Bezier样条函数

CDC::PolyBezier(起点和控制点组成的数组,int nCount);,nCount表示数组中元素个数

绘制多边形

CDC::Polygon(顶点坐标组成的数组,数组中顶点个数);绘制的是闭合形状

位图操作函数

CBitmap::LoadBitmap(UINT nID) 导入位图函数,nID资源的ID编号。
CDC::CreateCompatibleDC(),创建与显示设备上下文兼容的内存设备上下文。
CDC::BitBlt()函数将位图从内存设备上下文复制到显示设备上下文。

文本函数

1.设置文本颜色函数
CDC::SetTextColor(COLORREF crColor) crClor新的文本颜色
2.设置文本背景模式函数
CDC::SetBkMode()
3.设置文本背景颜色函数
CDC::SetBkColor(),
4.输出文本函数
CDC::TextOut(int x,int y,const CString &str)
5.设置文本格式函数
CString:: Format
CString data;
CString str=“zhongguo”;
data.Format(“%s”,str);

设备上下文的调用与释放

如果不在OnDraw()函数中输出,首先需要获得设备上下文,
CDC * pDC=GetDC();//获取设备上下文
ReleaseDC(pDC);//释放内存设备上下文

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值