⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 detreesvmview.cpp

📁 网页分类器
💻 CPP
📖 第 1 页 / 共 2 页
字号:

        pDC->LineTo(j+10,l);//画线
        pDC->Ellipse(j+5,l-5,j+15,l+5);//画点

		CString str;
		int m=(int)(dRecall[i]*100+0.5);
		str.Format("%d",m);
		str = str + "%";
		pDC->TextOut(j,(l-15),str);//输出查全率

		str.Format("%d",(i+1));
		str=str+"类";
		pDC->TextOut(j+7,440,str);
    }
	pDC->TextOut(280,310,"查全率");
	
	//画f1测试值对应的折线图
	a = j+50;
	pDC->MoveTo(a,point1.y);//初始点
	for(i=0;i<KINDNUMBER;i++)
    {
        j=a+10+i*40;
        l=point1.y-(int)(dF1[i]*150);
        hP=CreatePen(PS_SOLID,1,RGB(0,0,0));
        hBr=CreateSolidBrush(color[i]);
        pDC->SelectObject(hBr);//设置画笔
        pDC->SelectObject(hP);

        pDC->LineTo(j+10,l);//画线
        pDC->Ellipse(j+5,l-5,j+15,l+5);//画点

		CString str;
		str.Format("%.3lf",dF1[i]);
		pDC->TextOut(j,(l-15),str);//输出F1测试值

		str.Format("%d",(i+1));
		str=str+"类";
		pDC->TextOut(j+7,440,str);
    }
	pDC->TextOut(460,310,"F1测试值");

	pDC->TextOut(600,280,"折线图表示分类器性能");
	for(i=0;i<KINDNUMBER;i++)
	{
		j=318+35*i;
		hBr=CreateSolidBrush(color[i]);
		pDC->SelectObject(hBr);//设置画笔
		pDC->Ellipse(650,j-5,660,j+5);
	}
	pDC->TextOut(670,310,"1教育类");
	pDC->TextOut(670,345,"2娱乐类");
	pDC->TextOut(670,380,"3时尚类");
	pDC->TextOut(670,415,"4计算机类");

	m_bCurve = TRUE;
	this->ReleaseDC(pDC);
}


/********************************************************************
       // 创建日期   :  2008-5-20 14:39:24
	   // 作    者	  : 祝美莲<zml123818@163.com> 
       // 函数名称	  : CDeTreeSVMView::OnRect
       // 函数功能	  : 画柱状图
       // 返回类型	  : void 
********************************************************************/
void CDeTreeSVMView::OnRect() 
{
	// TODO: Add your command handler code here
	//定义画笔画刷
	HPEN hP;
    HBRUSH hBr;
	CFont  font;

	COLORREF color[4];
	color[0]=RGB(220,20,60);
	color[1]=RGB(255,0,255);
	color[2]=RGB(255,255,0);
	color[3]=RGB(0,250,154);
	
	CDC *pDC=this->GetDC();
	OnPrepareDC(pDC);
	//画图
	hP=(HPEN)GetStockObject(BLACK_PEN);
    hBr=(HBRUSH)GetStockObject(DKGRAY_BRUSH);

	pDC->SetTextColor(RGB(0,0,255));

	font.CreateFont(14,7,0,0,0,FALSE,FALSE,0, ANSI_CHARSET,OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, 
	DEFAULT_QUALITY,DEFAULT_PITCH | FF_SWISS,"宋体"); 

	pDC->TextOut(300,10,"分类结果的图形表示");

	pDC->SelectObject(&font);
	pDC->SelectObject(hBr);
    pDC->SelectObject(hP);
    pDC->SetBkMode(TRANSPARENT);

	//画坐标系
	CPoint point1(55,230);
    pDC->MoveTo(point1);
    pDC->LineTo(600,point1.y);
    pDC->MoveTo(point1);
    pDC->LineTo(point1.x,55);
	
	//画箭头
	pDC->MoveTo((point1.x-5),60);
	pDC->LineTo(point1.x,55);
	pDC->MoveTo(point1.x,55);
	pDC->LineTo((point1.x+5),60);

	pDC->MoveTo(595,(point1.y+5));
	pDC->LineTo(600,point1.y);
	pDC->MoveTo(595,(point1.y-5));
	pDC->LineTo(600,point1.y);

	pDC->TextOut(600,235,"类别");
	int i,j,k,l=0;
	//画查准率对应的柱状图
	for(i=0;i<KINDNUMBER;i++)
	{
		j=point1.x+20+i*35;
		k=j+25;
		l=point1.y-(int)(dPrecision[i]*150);

		hBr=CreateSolidBrush(color[i]);
		pDC->SelectObject(hBr);//设置画笔

		pDC->Rectangle(j,point1.y,k,l);

		CString str;
		int m=(int)(dPrecision[i]*100+0.5);
		str.Format("%d",m);
		str = str +"%";
		pDC->TextOut(j,(l-15),str);//输出查准率

		str.Format("%d",(i+1));
		str=str+"类";
		pDC->TextOut(j,235,str);//输出类别
	}
	
	pDC->TextOut(100,48,"查准率");
	
	//画查全率对应的柱状图
	int a = k;
	for(i=0;i<KINDNUMBER;i++)
	{
		j=a+40+i*35;
		k=j+25;
		l=point1.y-(int)(dRecall[i]*150);
		hBr=CreateSolidBrush(color[i]);
		pDC->SelectObject(hBr);//设置画笔

		pDC->Rectangle(j,point1.y,k,l);//画矩形

		CString str;
		int m=(int)(dRecall[i]*100+0.5);
		str.Format("%d",m);
		str = str + "%";
		pDC->TextOut(j,(l-15),str);//输出查全率

		str.Format("%d",(i+1));
		str=str+"类";
		pDC->TextOut(j,235,str);//输出类别
	}
	
	pDC->TextOut(280,48,"查全率");
	
	//画F1测试值对应的柱状图
	a = k;
	for(i=0;i<KINDNUMBER;i++)
	{
		j=a+40+i*40;
		k=j+25;
		l=point1.y-(int)(dF1[i]*150);
		hBr=CreateSolidBrush(color[i]);
		pDC->SelectObject(hBr);//设置画笔

		pDC->Rectangle(j,point1.y,k,l);
		CString str;
		str.Format("%.3lf",dF1[i]);
		pDC->TextOut((j-10),(l-15),str);//输出F1值

		str.Format("%d",(i+1));
		str=str+"类";
		pDC->TextOut(j,235,str);//输出类别
	}
	
	pDC->TextOut(460,48,"F1测试值");

	//输出
	pDC->TextOut(600,55,"柱状图表示的分类器性能");
	for(i=0;i<KINDNUMBER;i++)
	{
		j=110+35*i;
		k=j-20;
		hBr=CreateSolidBrush(color[i]);
		pDC->SelectObject(hBr);//设置画笔
		pDC->Rectangle(650,j,680,k);
	}
	pDC->TextOut(690,90,"1教育类");
	pDC->TextOut(690,125,"2娱乐类");
	pDC->TextOut(690,160,"3时尚类");
	pDC->TextOut(690,195,"4计算机类");
	
	m_bRect = TRUE;
	this->ReleaseDC(pDC);

}


/********************************************************************
       // 创建日期   :  2008-5-21 8:39:17
	   // 作    者	  : 祝美莲<zml123818@163.com> 
       // 函数名称	  : CDeTreeSVMView::OnUpdateRect
       // 函数功能	  : 判断是否有"result.txt"文件,设置按钮的状态
       // 返回类型	  : void 
       // 函数参数	  : CCmdUI* pCmdUI
********************************************************************/
void CDeTreeSVMView::OnUpdateRect(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	CString strFileName;
	strFileName = pPath;
	strFileName+="\\result.txt";
	CFile mFile;
	//判断是否有“result.txt”文件
	if(mFile.Open(strFileName,CFile::modeRead)==0)
	{
		pCmdUI->Enable(0);
	}
	else 
	{
		pCmdUI->Enable();
	}
	
}


/********************************************************************
       // 创建日期   :  2008-5-21 8:38:54
	   // 作    者	  : 祝美莲<zml123818@163.com> 
       // 函数名称	  : CDeTreeSVMView::OnUpdateCurve
       // 函数功能	  : 判断是否有"result.txt"文件,设置按钮的状态
       // 返回类型	  : void 
       // 函数参数	  : CCmdUI* pCmdUI
********************************************************************/
void CDeTreeSVMView::OnUpdateCurve(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	CString strFileName;
	strFileName = pPath;
	strFileName+="\\result.txt";
	CFile mFile;
	//判断是否有“result.txt”文件
	if(mFile.Open(strFileName,CFile::modeRead)==0)
		pCmdUI->Enable(0);//禁用该项
	else 
		pCmdUI->Enable();//使该项使能
}

/********************************************************************
       // 创建日期   :  2008-6-1 8:23:43
	   // 作    者	  : 祝美莲<zml123818@163.com> 
       // 函数名称	  : CDeTreeSVMView::OnPrepareDC
       // 函数功能	  : 更新DC
       // 返回类型	  : void 
       // 函数参数	  : CDC* pDC
       // 函数参数	  : CPrintInfo* pInfo
********************************************************************/
void CDeTreeSVMView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo) 
{
	// TODO: Add your specialized code here and/or call the base class
	
	CScrollView::OnPrepareDC(pDC, pInfo);
}


/********************************************************************
       // 创建日期   :  2008-6-4 10:01:01
	   // 作    者	  : 祝美莲<zml123818@163.com> 
       // 函数名称	  : CDeTreeSVMView::OnClean
       // 函数功能	  : 清空屏幕上原有的图形
       // 返回类型	  : void 
********************************************************************/
void CDeTreeSVMView::OnClean() 
{
	// TODO: Add your command handler code here
	m_bCurve = FALSE;//不画线
	m_bRect = FALSE;
	Invalidate();//重画窗口
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -