资源简介
用C++实现的关于AGV路径规划的程序,在VC6.0中可以运行,需要自己下载graphics.h提供画图支持
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define MAX 100
#define maxD 99999
class CFixedMap
{
public:
struct Coordinate
{
int x;
int y;
int num;
};//记录点的结构体
struct combp
{
int x1y1;
int x2y2;
};//连通点坐标
struct Combname
{
int num1;
int num2;
};//连通点名
public:
int mVexNum; // 顶点数
int mEdgNum; // 边数
double mMatrix[MAX][MAX]; // 邻接矩阵
Combname comb[MAX]; //连通点名
combp cp[MAX]; //连通点坐标
Coordinate mVexs[MAX]; // 顶点集合
int getx(int n1);
int gety(int n2);
void Input();//以文件方式输入地图信息
void ShowMap();//easyx显示地图
};
int CFixedMap::getx(int n1)
{
int x=0;
for(int i=0;i if(n1==mVexs[i].num)
x=mVexs[i].x;
return x;
}
int CFixedMap::gety(int n2)
{
int y=0;
for(int i=0;i if(n2==mVexs[i].num)
y=mVexs[i].y;
return y;
}
void CFixedMap::Input()
{
int panju;
char fname[10]={“map2.txt“};
cout<<“是否载入默认地图?(1:是,2:否)“;
cin>>panju;
if(panju==2)
{
cout<<“请输入地图信息文件名:“;
cin>>fname;
}
ifstream file(fname);
char use1[100];
char use2[100];
char use3[100];
char use4[100]; //use数组用来储存提示信息。
file>>use1;
file>>mVexNum; //端点个数
file>>use2;
file>>mEdgNum; //边数
file>>use3;
for(int i=0;i {
file>>mVexs[i].num>>mVexs[i].x>>mVexs[i].y;
}
file>>use4;
for(int i=0;i {
file>>comb[i].num1>>comb[i].num2;
}
file.close();
}
//easyx显示地图
void CFixedMap::ShowMap()
{
initgraph(800600SHOWCONSOLE| NOCLOSE); //初始化绘图环境
setbkcolor(WHITE); //设置背景色
cleardevice(); //用背景色清空屏幕
setfillcolor(BLACK); //设置填充色
//画顶点
for(int i=0;i {
fillcircle(mVexs[i].xmVexs[i].y5);
settextcolor(BLACK);
char s[MAX];
sprintf(s “%d“ i+1);
outtextxy(mVexs[i].x-10mVexs[i].y-20s);
}
//给实际连通的顶点连线
setlinecolor(RGB(000));
setlinestyle(PS_SOLID6NULL0);
for(int i=0;i {
cp[i].x1=getx(comb[i].num1);
cp[i].y1=gety(comb[i].num1);
cp[i].x2=getx(comb[i].num2);
cp[i].y2=gety(comb[i].num2);
line(cp[i].x1cp[i].y1cp[i].x2cp[i].y2);
}
}
class CPathPlan:public CFixedMap
{
public:
int path[MAX]; //存放最后一个点
double dist[MAX]; //存放路径距离
int v0; //起始点
int route[40]; //路径
int rnum; //路径顶点数
Coo
相关资源
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- c++ 画图(14Qt-XPS)
- c++多边形交并差运算
- VC++基于OpenGL模拟的一个3维空间模型
评论
共有 条评论