📄 antclusteringview.cpp
字号:
return DoPreparePrinting(pInfo);
}
void CAntClusteringView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CAntClusteringView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
/////////////////////////////////////////////////////////////////////////////
// CAntClusteringView diagnostics
#ifdef _DEBUG
void CAntClusteringView::AssertValid() const
{
CScrollView::AssertValid();
}
void CAntClusteringView::Dump(CDumpContext& dc) const
{
CScrollView::Dump(dc);
}
CAntClusteringDoc* CAntClusteringView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CAntClusteringDoc)));
return (CAntClusteringDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CAntClusteringView message handlers
void CAntClusteringView::OnParameter()
{
// TODO: Add your command handler code here
CParaDlg paraDlg;
if(paraDlg.DoModal()==IDOK)
{
double alpha;
int antnum;
double pickk;
double dropk;
double r;
UINT maxcycnum;
float dist;
// int SimilarityFun;
paraDlg.putpara(alpha,antnum,pickk,dropk,r,maxcycnum,dist); /////////////////将参数对话框传来的参数赋给主算法的相应参数
alogrithm.getpara(alpha,antnum,pickk,dropk,r,maxcycnum,dist);
alogrithm.InitDataObject();
m_nViewDataNum=m_pAd->GetDataNum();
m_nViewPropNum=m_pAd->GetPropNum();
m_bStartDraw=false;
m_pOriDataObj=new DataObject[m_nViewDataNum];
/////把初始值赋到数组中
for(int i=0;i<m_nViewDataNum;i++)
{
(m_pOriDataObj+i)->m_pfa=new double[m_nViewPropNum];
for(int j=0;j<m_nViewPropNum;j++ )
(double)*((m_pOriDataObj+i)->m_pfa+j)=(double)*((dataObj+i)->m_pfa+j) ;
(m_pOriDataObj+i)->x=(dataObj+i)->x;
(m_pOriDataObj+i)->y=(dataObj+i)->y;
}
posChangeDataNum=alogrithm.AntThreadProc(dataObj);
/* //////////多线程实现
CWinThread* antThread[30]; //蚂蚁线程数组
for(int j=0;j<alogrithm._antNumber;j++)
{
antThread[j] = AfxBeginThread(alogrithm.AntThreadProc, dataObj);
antThread[j]->m_bAutoDelete = false;
}
DWORD dwStatus[30];
bool isCheck = true;
while(isCheck)
{
int nCount = 0;
for(j=0;j<alogrithm._antNumber;j++)
{
VERIFY(::GetExitCodeThread(antThread[j]->m_hThread, &dwStatus[j]));
nCount += dwStatus[j];
}
if(nCount == 0)
isCheck = false;
}
//如果所有蚂蚁线程都已经结束,删除线程对象,对数据分类
for(j=0;j<alogrithm._antNumber;j++)
{
delete antThread[j];
}
*/
/////////////////////////////
CString Origin_Str="", Change_Str="";
CString Origin_temp="",Change_temp="";
/* for( i=0;i<DATANUMBER;i++)
{ Origin_Str.Empty();
Origin_Str="\n";
Origin_temp.Format("%f",m_pOriDataObj[i].property1);
Origin_Str+=Origin_temp;
Origin_Str+=" ";
Origin_temp.Format("%f",m_pOriDataObj[i].property2);
Origin_Str+=Origin_temp;
Origin_Str+=" ";
Origin_temp.Format("%f",m_pOriDataObj[i].property3);
Origin_Str+=Origin_temp;
Origin_Str+=" ";
Origin_temp.Format("%f",m_pOriDataObj[i].property4);
Origin_Str+=Origin_temp;
Origin_Str+=" ";
Origin_temp.Format("%f",m_pOriDataObj[i].x);
Origin_Str+=Origin_temp;
Origin_Str+=" ";
Origin_temp.Format("%f",m_pOriDataObj[i].y);
Origin_Str+=Origin_temp;
Origin_Str+=" ";
// WriteLog(Origin_Str);
Change_Str.Empty();
Change_Str="\n";
Change_temp.Format("%f",dataObj[i].property1);
Change_Str+=Change_temp;
Change_Str+=" ";
Change_temp.Format("%f",dataObj[i].property2);
Change_Str+=Change_temp;
Change_Str+=" ";
Change_temp.Format("%f",dataObj[i].property3);
Change_Str+=Change_temp;
Change_Str+=" ";
Change_temp.Format("%f",dataObj[i].property4);
Change_Str+=Change_temp;
Change_Str+=" ";
Change_temp.Format("%f",dataObj[i].x);
Change_Str+=Change_temp;
Change_Str+=" ";
Change_temp.Format("%f",dataObj[i].y);
Change_Str+=Change_temp;
Change_Str+=" ";
// WriteLog(Change_Str) ;
}
*/
classNo=alogrithm.ClassifyData();
m_bStartDraw=true;
Invalidate();
}
}
/*void CAntClusteringView::OnClose()
{
// TODO: Add your command handler code here
}
*/
void CAntClusteringView::OnInitialUpdate() ////设置屏幕大小
{
CSize sizeTotal;
// TODO: calculate the total size of this view
sizeTotal.cx =600;
sizeTotal.cy =18000;
SetScrollSizes(MM_TEXT, sizeTotal);
CScrollView::OnInitialUpdate();
}
void CAntClusteringView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
/* CClientDC dc(this);
OnPrepareDC(&dc);
dc.DPtoLP(&point);*/
CScrollView::OnLButtonDown(nFlags, point);
}
void CAntClusteringView::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CClientDC dc(this);
OnPrepareDC(&dc);
/* dc.DPtoLP(&point);*/
CScrollView::OnRButtonDown(nFlags, point);
}
void CAntClusteringView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CClientDC dc(this);
OnPrepareDC(&dc);
/* dc.DPtoLP(&point);*/
CScrollView::OnMouseMove(nFlags, point);
}
void CAntClusteringView::OnMenuReaddata()
{
// TODO: Add your command handler code here
CRDDlg myReadDlg;
myReadDlg.DoModal();
}
void CAntClusteringView::OnWritelog()
{
// TODO: Add your command handler code here
/* CString Origin_Str="", Change_Str="";
CString Origin_temp="",Change_temp="";
for(int i=0;i<DATANUMBER;i++)
{ Origin_Str.Empty();
Origin_Str="\n";
Origin_temp.Format("%f",m_pOriDataObj[i].property1);
Origin_Str+=Origin_temp;
Origin_Str+=" ";
Origin_temp.Format("%f",m_pOriDataObj[i].property2);
Origin_Str+=Origin_temp;
Origin_Str+=" ";
Origin_temp.Format("%f",m_pOriDataObj[i].property3);
Origin_Str+=Origin_temp;
Origin_Str+=" ";
Origin_temp.Format("%f",m_pOriDataObj[i].property4);
Origin_Str+=Origin_temp;
Origin_Str+=" ";
Origin_temp.Format("%f",m_pOriDataObj[i].x);
Origin_Str+=Origin_temp;
Origin_Str+=" ";
Origin_temp.Format("%f",m_pOriDataObj[i].y);
Origin_Str+=Origin_temp;
Origin_Str+=" ";
WriteLog(Origin_Str);
Change_Str.Empty();
Change_Str="\n";
Change_temp.Format("%f",dataObj[i].property1);
Change_Str+=Change_temp;
Change_Str+=" ";
Change_temp.Format("%f",dataObj[i].property2);
Change_Str+=Change_temp;
Change_Str+=" ";
Change_temp.Format("%f",dataObj[i].property3);
Change_Str+=Change_temp;
Change_Str+=" ";
Change_temp.Format("%f",dataObj[i].property4);
Change_Str+=Change_temp;
Change_Str+=" ";
Change_temp.Format("%f",dataObj[i].x);
Change_Str+=Change_temp;
Change_Str+=" ";
Change_temp.Format("%f",dataObj[i].y);
Change_Str+=Change_temp;
Change_Str+=" ";
WriteLog(Change_Str) ;*/
}
void CAntClusteringView::OnFileSave()
{
// TODO: Add your command handler code here
HMETAFILE hmetaFile;
hmetaFile=m_dcMetaFile.Close();
CopyMetaFile(hmetaFile,"meta.wmf");
m_dcMetaFile.Create();
DeleteMetaFile(hmetaFile);
}
void CAntClusteringView::OnFileopen()
{
// TODO: Add your command handler code here
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -