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

📄 class designview.cpp

📁 二维几何图形变换的演示
💻 CPP
📖 第 1 页 / 共 3 页
字号:
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CClassDesignView message handlers



void CClassDesignView::OnLineBili() ///////////////执行直线关于比例变换的判断
{
    CurrenDraw=m_bLine_bili;                 /////////响应函数值赋给switch(CurrenDraw)
	ExchangeBiLi();                         //////////调用对话框响应函数(自定义的比例变换函数)
	Invalidate();                           /////////刷新并回到重绘函数
	// TODO: Add your command handler code here
}

void CClassDesignView::OnLineXduicheng() ///////////////执行直线关于X轴对称变换的判断
{
    CurrenDraw=m_bLine_Xduicheng;		
	Invalidate();
}

void CClassDesignView::OnLineYduicheng() ///////////////执行直线关于Y轴对称变换的判断
{
     CurrenDraw=m_bLine_Yduicheng;
	 Invalidate();
}

void CClassDesignView::OnLINEOrgDUICHENG() ///////////////执行直线关于原点对称变换的判断
{
    CurrenDraw=m_bLine_Orgduicheng;
	Invalidate();
}

void CClassDesignView::OnLineCuoqie() ///////////////执行直线关于错切变换的判断
{
    CurrenDraw=m_bLine_CuoQie;	
	ExchangeCuoQie();                //////////调用对话框响应函数(自定义的错切变换函数)
	Invalidate();
	// TODO: Add your command handler code here
}

void CClassDesignView::OnLineXuanzhuang() ///////////////执行直线关于旋转变换的判断
{
    CurrenDraw=m_bLine_Xuanzhuang;
    ExchangeXuanZhuang();               //////////调用对话框响应函数(自定义的旋转变换函数)
	Invalidate();
	// TODO: Add your command handler code here
}

 void CClassDesignView::OnLinePingyi() ///////////////执行直线关于平移变换的判断
{
  
	CurrenDraw=m_bLine_Pingyi;
    ExchangePingyi();                 //////////调用对话框响应函数(自定义的平移变换函数)
    Invalidate();	

 	// TODO: Add your command handler code here
 }

void CClassDesignView::OnPointXduicheng() ///////////////执行画点关于X轴对称变换的判断
{
    CurrenDraw=m_bPoint_Xduicheng;
	Invalidate();
	// TODO: Add your command handler code here
}

void CClassDesignView::OnPointYduicheng() ///////////////执行画点关于Y轴对称变换的判断
{
    CurrenDraw=m_bPoint_Yduicheng;
	Invalidate();
	// TODO: Add your command handler code here
}

void CClassDesignView::OnPOINTOrgDUICHENG() ///////////////执行画点关于原点对称变换的判断
{
    CurrenDraw=m_bPoint_ORGduicheng;	
	Invalidate();
	// TODO: Add your command handler code here
}

void CClassDesignView::OnPointPingyi() ///////////////执行画点平移变换的判断
{
    CurrenDraw=m_bPoint_Pingyi;		
	ExchangePingyi();
	Invalidate();
	// TODO: Add your command handler code here
}

void CClassDesignView::OnPointXuanzhuang() ///////////////执行画点旋转变换的判断
{
    CurrenDraw=m_bPoint_Xuanzhuang;
	ExchangeXuanZhuang();
	Invalidate();
	// TODO: Add your command handler code here
}

void CClassDesignView::OnMultilineBili() ///////////////执行多边形比例变换的判断
{
    CurrenDraw=m_bMultiline_Bili;
	ExchangeBiLi();
	Invalidate();
	// TODO: Add your command handler code here
}

void CClassDesignView::OnMultilineXduicheng() ///////////////执行多边形X轴对称变换的判断
{
    CurrenDraw=m_bMultiline_Xduicheng;		
	Invalidate();
	// TODO: Add your command handler code here
}

void CClassDesignView::OnMULTILINEOrgDUICHENG() ///////////////执行多边形原点对称变换的判断
{
    CurrenDraw=m_bMultiline_Orgduicheng;	
	Invalidate();
	// TODO: Add your command handler code here
}

void CClassDesignView::OnMultilineYduicheng() ///////////////执行多边形Y轴对称变换的判断
{
    CurrenDraw=m_bMultiline_Yduicheng;	
	Invalidate();
	// TODO: Add your command handler code here
}

void CClassDesignView::OnMultilineCuoqie() ///////////////执行多边形错切变换的判断
{
    CurrenDraw=m_bMultiline_Cuoqie;	
	ExchangeCuoQie();
	Invalidate();
	// TODO: Add your command handler code here
}


void CClassDesignView::OnMultilineXuanzhuang() ///////////////执行多边形旋转变换的判断
{
    CurrenDraw=m_bMultiline_Xuanzhuang;	
	ExchangeXuanZhuang();
	Invalidate();
	// TODO: Add your command handler code here
}

void CClassDesignView::OnMultilinePingyi()  ///////////////执行多边形平移变换的判断
{
    CurrenDraw=m_bMultiline_Pingyi;	
	 ExchangePingyi();
	Invalidate();
	// TODO: Add your command handler code here
}

void CClassDesignView::OnMultilinefuhe() ///////////////执行多边形复合变换的判断
{
    CurrenDraw=m_bMultiline_fuhe;	
    ExchangeDataPolygonFH();	
	Invalidate();	
	// TODO: Add your command handler code here
}

inline  void CClassDesignView::SetData(int  (*Po)[3], int (*Pa)[3], int (*Pb)[3])
{                                        
 for(int i=0;i<=4;i++)
	for(int j=0;j<=2;j++)                        ////////自定义内联函数利用三重循环完成矩阵相乘赋值
	{
	   for(int k=0;k<=2;k++)
            
		   *(*(Pa+i)+j)+=(*(*(Pb+i)+k))*(*(*(Po+k)+j));
	}
}

void CClassDesignView::OnPOINTqingping() //////自定义清屏函数,原理就是重绘坐标轴
{
	 CurrenDraw=POINTqingping;
	 Invalidate();
	 // TODO: Add your command handler code here
	
}

void CClassDesignView::OnLINEqingping() /////自定义清屏函数,原理就是重绘坐标轴
{
	 CurrenDraw=POINTqingping;
	 Invalidate();
	 // TODO: Add your command handler code here
	
}

void CClassDesignView::OnMULTILINEqingping()/////自定义清屏函数,原理就是重绘坐标轴 
{
	 CurrenDraw=POINTqingping;
	 Invalidate();
	 // TODO: Add your command handler code here
}
void CClassDesignView::OnMouseMove(UINT nFlags, CPoint point) 
							/////以下代码是在状态栏上添加一个状态信息行,显示当前鼠标的位置				       
{
	CString str;
	CMainFrame *pFrame=(CMainFrame *)AfxGetApp()->m_pMainWnd;///获取状态栏指针
	CStatusBar *pStatus=&pFrame->m_wndStatusBar;
	
	if(pStatus) {
		         str.Format("x=%d",point.x-510);//显示X坐标
		         pStatus->SetPaneText(1,str);
                 str.Format("y=%d",-(point.y-323));//显示Y坐标
                 pStatus->SetPaneText(2,str);
				}
	// TODO: Add your message handler code here and/or call default
	
	CView::OnMouseMove(nFlags, point);
}

void CClassDesignView::ExchangePingyi()//自定义函数,弹出对话框,并要求输入数据
{
	ExchangeData dlg;  //定义一个自定义类ExchangeData的一个对象
	if(dlg.DoModal()==IDOK )//调用DoModal()进行判断后,弹出对话框	 
	   dfData1=dlg.m_Xpingyi;//接收数据,赋给CClassDesignView类的公有成员,得以输入矩阵数据
	   dfData2=dlg.m_Ypingyi;
}

void CClassDesignView::ExchangeCuoQie()//定义一个自定义类CuoQie的一个对象
{
       CuoQie dlg;
	if(dlg.DoModal()==IDOK )	 
	   dfData1=dlg.m_Xcuoqie;
	   dfData2=dlg.m_Ycuoqie;
}

void CClassDesignView::ExchangeBiLi()//定义一个自定义类BiLi的一个对象
{
    BiLi dlg;
	if(dlg.DoModal()==IDOK )	 
	   dfData1=dlg.m_bili;
	   
}

void CClassDesignView::ExchangeXuanZhuang()//定义一个自定义类XuanZhuang的一个对象
{
     XuanZhuang dlg;
	if(dlg.DoModal()==IDOK )	 
	   dfData1=dlg.m_xuanzhuang;
}

void CClassDesignView::ExchangeDataPolygonFH()//定义一个自定义类PolygonFH的一个对象
{
     PolygonFH dlg;
	if(dlg.DoModal()==IDOK )	 
	   dfData1=dlg.m_fhbili;
	   dfData2=dlg.m_fhxpy;
	   dfData3=dlg.m_fhxz;
}

void CClassDesignView::OnUpdatePointXduicheng(CCmdUI* pCmdUI) 
{
		if(	CurrenDraw==m_bPoint_Xduicheng)
 		pCmdUI->SetCheck(1);
 		else
		pCmdUI->SetCheck(0);// TODO: Add your command update UI handler code here
	
}

void CClassDesignView::OnUpdatePointYduicheng(CCmdUI* pCmdUI) 
{
		if(CurrenDraw==m_bPoint_Yduicheng)
 		pCmdUI->SetCheck(1);
		else
		pCmdUI->SetCheck(0);// TODO: Add your command update UI handler code here
	
}

void CClassDesignView::OnUpdatePOINTOrgDUICHENG(CCmdUI* pCmdUI) 
{
		if(	CurrenDraw==m_bPoint_ORGduicheng)
 		pCmdUI->SetCheck(1);
		else
		pCmdUI->SetCheck(0);// TODO: Add your command update UI handler code here
	
}

void CClassDesignView::OnUpdatePoint(CCmdUI* pCmdUI) 
{
  if(CurrenDraw==m_bPoint)
 	pCmdUI->SetCheck(1);// TODO: Add your command update UI handler code here
  else
	pCmdUI->SetCheck(0);	
}

void CClassDesignView::OnUpdateLine(CCmdUI* pCmdUI) 
{
	if(CurrenDraw==m_bLine)
 		pCmdUI->SetCheck(1);// TODO: Add your command update UI handler code here
	else
		pCmdUI->SetCheck(0);	
}

void CClassDesignView::OnUpdateLineXduicheng(CCmdUI* pCmdUI) 
{
     if(CurrenDraw==m_bLine_Xduicheng)
 		pCmdUI->SetCheck(1);// TODO: Add your command update UI handler code here
	 else
		pCmdUI->SetCheck(0);	
}

void CClassDesignView::OnUpdateLineYduicheng(CCmdUI* pCmdUI) 
{
	if(CurrenDraw==m_bLine_Yduicheng)
 		pCmdUI->SetCheck(1);// TODO: Add your command update UI handler code here
	else
		pCmdUI->SetCheck(0);	
}

void CClassDesignView::OnUpdateLINEOrgDUICHENG(CCmdUI* pCmdUI) 
{
     if(CurrenDraw==m_bLine_Orgduicheng)
 		pCmdUI->SetCheck(1);// TODO: Add your command update UI handler code here
	 else
		pCmdUI->SetCheck(0);	
}

void CClassDesignView::OnUpdateMultiline(CCmdUI* pCmdUI) 
{
	if(	CurrenDraw==m_bMultiline)
 		pCmdUI->SetCheck(1);// TODO: Add your command update UI handler code here
	else
		pCmdUI->SetCheck(0);	
}

void CClassDesignView::OnUpdateMultilineXduicheng(CCmdUI* pCmdUI) 
{
	if(CurrenDraw==m_bMultiline_Xduicheng)
 		pCmdUI->SetCheck(1);// TODO: Add your command update UI handler code here
	else
		pCmdUI->SetCheck(0);	
}

void CClassDesignView::OnUpdateMultilineYduicheng(CCmdUI* pCmdUI) 
{
     if(CurrenDraw==m_bMultiline_Yduicheng)
 		pCmdUI->SetCheck(1);// TODO: Add your command update UI handler code here
	 else
		pCmdUI->SetCheck(0); 	
}

void CClassDesignView::OnUpdateMULTILINEOrgDUICHENG(CCmdUI* pCmdUI) 
{
	if(CurrenDraw==m_bMultiline_Orgduicheng)
 		pCmdUI->SetCheck(1);// TODO: Add your command update UI handler code here
	else
		pCmdUI->SetCheck(0);	
}

⌨️ 快捷键说明

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