内容发布更新时间 : 2024/12/23 22:01:37星期一 下面是文章的全部内容请认真阅读。
山东建筑大学毕业论文
}
机器人控件颜色设置:
void CRobotViewView::showRobotPoint(int x,int y) { // }
CDC *pDC=GetDC(); CBrush brush;
brush.CreateSolidBrush(RGB(112,207,119)); pDC->SelectStockObject(brush); pDC->SelectObject(brush); pDC->Ellipse(x-15,y-15,x+15,y+15);
运行程序,如图图3.5所示:
图3.5 机器人的界面显示
4. 目标点设置 程序实现:
void CMainFrame::OnGoalPoint() { }
// TODO: Add your command handler code here point=3;
- 28 -
山东建筑大学毕业论文
void CMainFrame::OnUpdateGoalPoint(CCmdUI* pCmdUI) { }
// TODO: Add your command update UI handler code here pCmdUI->Enable(flag);
目标点颜色设置:
void CRobotViewView::showGoalPoint(int x, int y) {
CDC *pDC=GetDC(); // }
CBrush brush;
brush.CreateSolidBrush(RGB(254,247,107)); pDC->SelectStockObject(brush); pDC->SelectObject(brush); pDC->Ellipse(x-15,y-15,x+20,y+15);
该程序段的作用就是设置目标点的位置和目标点颜色的设置,有彩色颜色的设置可知,目标点的颜色为黄色。
程序运行,如图3.6所示:
- 29 -
山东建筑大学毕业论文
图3.6 目标点的界面显示
5. 路径规划演示平台运行 相关程序段:
void CMainFrame::OnBegin()
{ CRobotViewApp* myapp=(CRobotViewApp*)AfxGetApp(); CMainFrame* mainframe=(CMainFrame*)myapp->m_pMainWnd; // }
CBlockView* treeview=(CBlockView*)mainframe->m_wndSplitter_Horizontal.GetPane(0,0); CRobotViewView* robotview=(CRobotViewView*)mainframe->m_wndSplitter_Vertical.GetPane(0,0); treeview->MToControl(); Pathplan *path=new Pathplan(); path->plan(M);
path->setRobotPos(robotview->m_robotPointy*12/HEIGHT,robotview->m_robotPointx*20/WIDTH); path->pathPlanAll(robotview->m_goalPointy*12/HEIGHT,robotview->m_goalPointx*20/WIDTH); path->GetVmap(VirtualMap); best=path->GetPath();
Route* route=(Route*)mainframe->m_wndSplitter_Horizontal.GetPane(1,0); route->DrawRoute();
// TODO: Add your command handler code here UpdateData(false);
运行程序,如图3.7、3.8所示
- 30 -
山东建筑大学毕业论文
图3.7 运行界面
图3.8 路径规划最优路径显示
3.3.2 机器人路径规划的VC++实现 1 程序段及函数功能介绍 (1) 程序段介绍
程序是用VC++6.0软件编写,一共包含6个.cpp文件,.cpp文件如下所示:
BlockDlg.cpp、BlockView.cpp、Mainfrm.cpp、Pathplan.cpp、RobotViewView.cpp和Route.cpp
各部分功能如下面介绍: BlockDlg.cpp:障碍物参数设置
- 31 -