您的位置:首页 > 教育 > 锐评 > 分析图形学示例报告

分析图形学示例报告

2024/10/5 22:29:03 来源:https://blog.csdn.net/m0_73669127/article/details/142252378  浏览:    关键词:分析图形学示例报告

一、实验任务

 

二、主要功能模块

 

三、代码

//自定义坐标系模块
CDC* pDC = GetDC();//获得设备上下文
CRect rect;//定义矩形
GetClientRect(&rect);//获得矩形客户去大小
pDC->SetMapMode(MM_ANISOTROPIC);//自定义坐标系
pDC->SetWindowExt(rect.Width()/4, rect.Height()/4);//设置窗口范围
pDC->SetViewportExt(rect.Width(), -rect.Height());//x 轴水平向右,y 轴垂直向上
pDC->SetViewportOrg(rect.Width() / 2, rect.Height() / 2);//设置屏幕中心为坐标系原点//创建画笔模块
CPen newPen, * oldPen;//定义画笔
newPen.CreatePen(PS_SOLID, 1, RGB(255, 0, 0));//创建画笔
oldPen = pDC->SelectObject(&newPen);//选中 GDI 对象画笔//创建透明画刷模块
CBrush * oldBrush;//定义画刷
oldBrush = (CBrush *)pDC->SelectStockObject(5);//选中透明画刷//绘制圆形模块
pDC->Ellipse(CRect(-25, 25, 25,-25));//绘制图 4 中的圆①
pDC->Ellipse(CRect(51, 11, 73, -11));//绘制图 4 中的圆③
pDC->Ellipse(CRect(43, 19, 81, -19));//绘制图 4 中的圆②//绘制多边形模块
CPoint p[8];//定义等分点数组
double thta;
thta = 2 * PI / 8;//thta 为圆的等分角
for (int i = 0; i < 8; i++)
{
p[i].x = 37 / 2 * cos(i * thta);
p[i].y = 37 / 2 * sin(i * thta);
}//计算等分点坐标
pDC->Polygon(p, 8);//依次各连接等分点//绘制圆弧模块
pDC->Arc(CRect(36 - 25, 35 - 25, 36 + 25, 35 + 25), 
CPoint(16,16), CPoint(49, 14));//绘制图 6 中的圆弧①
pDC->Arc(CRect(24 - 94, 65 - 94, 24 + 94, 65 + 94), CPoint(-9, -24), CPoint(72, -17));//绘制图 6 中的圆弧②

四、问题

为了防止先绘制的图形被后绘制图形的画刷覆盖,因此在这里创建透明画刷 啥意思?
CPen newPen, * oldPen;//定义画笔    为什么定义的一个是指针一个不是?
newPen.CreatePen(PS_SOLID, 1, RGB(255, 0, 0));//创建画笔
oldPen = pDC->SelectObject(&newPen);//选中 GDI 对象画笔
CBrush * oldBrush;//定义画刷  默认透明是吗?
oldBrush = (CBrush *)pDC->SelectStockObject(5);//选中透明 画刷  这个5是啥,不应该是oldBrush吗?

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com