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

📄 clusteringview.cpp

📁 用K均值算法实现聚类分析的Vc源码
💻 CPP
字号:
// ClusteringView.cpp : implementation of the CClusteringView class
//

#include "stdafx.h"
#include "Clustering.h"

#include "ClusteringDoc.h"
#include "ClusteringView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CClusteringView

IMPLEMENT_DYNCREATE(CClusteringView, CView)

BEGIN_MESSAGE_MAP(CClusteringView, CView)
	//{{AFX_MSG_MAP(CClusteringView)
		// NOTE - the ClassWizard will add and remove mapping macros here.
		//    DO NOT EDIT what you see in these blocks of generated code!
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
	ON_MESSAGE(WM_SHOWRESULT,OnShowResult)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CClusteringView construction/destruction

CClusteringView::CClusteringView()
{
	// TODO: add construction code here
	m_Flag=false;
}

CClusteringView::~CClusteringView()
{
}

BOOL CClusteringView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CClusteringView drawing

void CClusteringView::OnDraw(CDC* pDC)
{
	CClusteringDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	//坐标轴
	pDC->MoveTo(30,400);
	pDC->LineTo(700,400);
	pDC->MoveTo(50,40);
	pDC->LineTo(50,430);
	pDC->MoveTo(690,390);
	pDC->LineTo(700,400);
	pDC->MoveTo(690,410);
	pDC->LineTo(700,400);
	pDC->MoveTo(40,50);
	pDC->LineTo(50,40);
	pDC->MoveTo(60,50);
	pDC->LineTo(50,40);
	pDC->MoveTo(80,397);
	pDC->LineTo(80,400);
	pDC->MoveTo(110,397);
	pDC->LineTo(110,400);
	pDC->MoveTo(140,397);
	pDC->LineTo(140,400);
	pDC->MoveTo(170,397);
	pDC->LineTo(170,400);
	pDC->MoveTo(200,397);
	pDC->LineTo(200,400);
	pDC->MoveTo(230,397);
	pDC->LineTo(230,400);
	pDC->MoveTo(260,397);
	pDC->LineTo(260,400);
	pDC->MoveTo(290,397);
	pDC->LineTo(290,400);
	pDC->MoveTo(320,397);
	pDC->LineTo(320,400);
	pDC->MoveTo(350,397);
	pDC->LineTo(350,400);
	pDC->MoveTo(380,397);
	pDC->LineTo(380,400);
	pDC->MoveTo(410,397);
	pDC->LineTo(410,400);
	pDC->MoveTo(440,397);
	pDC->LineTo(440,400);
	pDC->MoveTo(470,397);
	pDC->LineTo(470,400);
	pDC->MoveTo(500,397);
	pDC->LineTo(500,400);
	pDC->MoveTo(530,397);
	pDC->LineTo(530,400);
	pDC->MoveTo(560,397);
	pDC->LineTo(560,400);
	pDC->MoveTo(590,397);
	pDC->LineTo(590,400);
	pDC->MoveTo(620,397);
	pDC->LineTo(620,400);
	pDC->MoveTo(53,370);
	pDC->LineTo(50,370);
	pDC->MoveTo(53,340);
	pDC->LineTo(50,340);
	pDC->MoveTo(53,310);
	pDC->LineTo(50,310);
	pDC->MoveTo(53,280);
	pDC->LineTo(50,280);
	pDC->MoveTo(53,250);
	pDC->LineTo(50,250);
	pDC->MoveTo(53,220);
	pDC->LineTo(50,220);
	pDC->MoveTo(53,190);
	pDC->LineTo(50,190);
	pDC->MoveTo(53,160);
	pDC->LineTo(50,160);
	pDC->MoveTo(53,130);
	pDC->LineTo(50,130);
	pDC->MoveTo(53,100);
	pDC->LineTo(50,100);
	pDC->TextOut(77,405,"1");
	pDC->TextOut(107,405,"2");
	pDC->TextOut(137,405,"3");
	pDC->TextOut(167,405,"4");
	pDC->TextOut(197,405,"5");
	pDC->TextOut(227,405,"6");
	pDC->TextOut(257,405,"7");
	pDC->TextOut(287,405,"8");
	pDC->TextOut(317,405,"9");
	pDC->TextOut(347,405,"10");
	pDC->TextOut(377,405,"11");
	pDC->TextOut(407,405,"12");
	pDC->TextOut(437,405,"13");
	pDC->TextOut(467,405,"14");
	pDC->TextOut(497,405,"15");
	pDC->TextOut(527,405,"16");
	pDC->TextOut(557,405,"17");
	pDC->TextOut(587,405,"18");
	pDC->TextOut(617,405,"19");
	pDC->TextOut(40,364,"1");
	pDC->TextOut(40,334,"2");
	pDC->TextOut(40,304,"3");
	pDC->TextOut(40,274,"4");
	pDC->TextOut(40,244,"5");
	pDC->TextOut(40,214,"6");
	pDC->TextOut(40,184,"7");
	pDC->TextOut(40,154,"8");
	pDC->TextOut(40,124,"9");
	pDC->TextOut(33,94,"10");
	pDC->TextOut(40,405,"0");
	//坐标点
	if(m_Flag==true)
	{
		for(int i=0;i<m_pMain->patternnum;i++)
		{
			char buffer[10];
			itoa(m_pMain->m_pattern[i].category,buffer,5);
			CString temp(buffer);
			pDC->MoveTo((50+30*m_pMain->m_Point[i].x),(400-30*m_pMain->m_Point[i].y));
			pDC->LineTo((50+30*m_pMain->m_Point[i].x+3),(400-30*m_pMain->m_Point[i].y));
			pDC->TextOut((50+30*m_pMain->m_Point[i].x+3),(400-30*m_pMain->m_Point[i].y),temp);
				
		}
	}

}

/////////////////////////////////////////////////////////////////////////////
// CClusteringView printing

BOOL CClusteringView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CClusteringView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CClusteringView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CClusteringView diagnostics

#ifdef _DEBUG
void CClusteringView::AssertValid() const
{
	CView::AssertValid();
}

void CClusteringView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CClusteringDoc* CClusteringView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CClusteringDoc)));
	return (CClusteringDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CClusteringView message handlers
LRESULT CClusteringView::OnShowResult(WPARAM wP,LPARAM lP)
{
	m_pMain=(CMainFrame *)AfxGetApp()->m_pMainWnd;
	m_Flag=true;	
	this->Invalidate();

	return 0;
}

⌨️ 快捷键说明

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