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));//更改顏色
*/
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圖形繪制_顏色改變