MFC图形绘制_颜色改变

Posted zombiee99

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC图形绘制_颜色改变相关的知识,希望对你有一定的参考价值。

计算机图形学中的裁剪算法,在画出原线段后修改画笔为白色对线段进行遮盖,之后再绘制。

 

修改画笔算法:

//用白色消除原来的画线痕迹

CPen cPen;//生明画笔 画笔和画刷都应该有
cPen.CreatePen(PS_SOLID,1,RGB(255,255,255)) ;
CPen* pOldPen = pDC->SelectObject(&cPen);
pDC->SelectObject(&cPen);
/*CBrush brush, *oldBrush;//创建画刷
brush.CreateSolidBrush(RGB(0, 255, 255));//更改颜色
oldBrush=pDC->SelectObject(&brush);//重新选取
*/
pDC->MoveTo(Round(p0.x),Round(p0.y));
pDC->LineTo(Round(p1.x),Round(p1.y));
pDC->SelectObject(pOldPen);//还回画刷

一开始查到的资料是用CBrush类的,不知为啥没用.....CPen就可以

 

另:

在Ondraw()外的函数接口绘制图形,pDC需要初始化,坐标轴也要重新调整

void Cweek9_2View::OnCut()
{
// TODO: 在此添加命令处理程序代码

CDC* pDC= GetDC();

CRect rect; //定义客户区
GetClientRect(&rect); //获得客户区的大小
pDC->SetMapMode(MM_ANISOTROPIC); //自定义坐标系
pDC->SetWindowExt(rect.Width(),rect.Height()); //设置窗口比例
pDC->SetViewportExt(rect.Width(),-rect.Height()); //设置视区比例,且x轴水平向右,y轴垂直向上
pDC->SetViewportOrg(rect.Width()/2,rect.Height()/2);//设置客户区中心为坐标系原点
rect.OffsetRect(-rect.Width()/2,-rect.Height()/2); //矩形与客户区重合

...

ReleaseDC(pDC); 

}

以上是关于MFC图形绘制_颜色改变的主要内容,如果未能解决你的问题,请参考以下文章

MFC Bresesnham算法

Matlab——图形绘制——二维平面图形

计算机图形学课程二.MFC鼠标响应函数模拟画图软件

利用Microsoft VC++6.0 的MFC 的绘图工具实现简单图形的绘制

MATLAB画图工具中坐标外面的底色是灰的,该如修改?

十一. 图形图像与多媒体3.绘图模式