亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? waypoint.cpp

?? A*算法
?? CPP
字號:
// WayPoint.cpp: implementation of the CWayPoint class.
//
//////////////////////////////////////////////////////////////////////

#include "WayPoint.h"
#include <math.h>
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CWayPoint::CWayPoint()
{

}

void CWayPoint::ClearNode()
{
	std::vector<SWPNode*>::iterator it=pNodeVector.begin();
	std::vector<SWPNode*>::iterator itEnd=pNodeVector.end();
	for(;it!=itEnd;++it)
	{
		delete((SWPNode*)(*it));
		*it=NULL;
	}
	pNodeVector.clear();
}

bool CWayPoint::ReadWayPointFile(char *fileName)
{
	int i=0;
	int NodeCount=0;
	FILE *fp=NULL;
	fp=fopen(fileName,"r");
	if(fp==NULL)
		return false;
	ClearNode();
	char s[1024];
	fgets(s,1024,fp);
	sscanf(s,"關鍵點數量=%d",&NodeCount);
	for(i=0;i<NodeCount;i++)
	{
		int x,y;
		int ID;
		fgets(s,1024,fp);
		sscanf(s,"%d x=%d;y=%d",&ID,&x,&y);
		AddNode(x,y,ID);
		int NeighborCount;
		fgets(s,1024,fp);
		sscanf(s,"  由此出發共可到達%d個點",&NeighborCount);
		for(int j=0;j<NeighborCount;j++)
		{
			fgets(s,1024,fp);
			int ChildID,dist;
			sscanf(s,"  (%d)=%d",&ChildID,&dist);
			AddNeighbor(i,ChildID,dist);
		}
	}
	fclose(fp);
	return true;
}

int CWayPoint::AddNode(int x,int y,int ID)
{
	SWPNode *pTempNode=new SWPNode;
	pTempNode->x=x;
	pTempNode->y=y;
	pTempNode->ID=ID;
	pTempNode->NeighborCount=0;
	pNodeVector.push_back(pTempNode);
	return pNodeVector.size()-1;
}

int CWayPoint::GetNewID()
{
	int maxID=0;
	std::vector<SWPNode*>::iterator it=pNodeVector.begin();
	std::vector<SWPNode*>::iterator itEnd=pNodeVector.end();
	for(;it!=itEnd;++it)
	{
		if(((SWPNode*)(*it))->ID>maxID)
			maxID=((SWPNode*)(*it))->ID;
	}
	return maxID+1;	
}

bool CWayPoint::RemoveNode(int Index)
{
	//先移除他與鄰居的連接
	for(int i=0;i<GetNodeCount();i++)
	{
		if(i!=Index)
		{
			RemoveNeighbor(Index,GetWPNode(i)->ID);
			RemoveNeighbor(i,GetWPNode(Index)->ID);
		}
	}
	pNodeVector.erase(pNodeVector.begin()+Index);
	return true;
}

int CWayPoint::AddNeighbor(int ParentIndex,int ChildID,int dist)
{
	SWPNode *pTempNode=pNodeVector[ParentIndex];
	//如果已經添加過這個項,就不再添加
	for(int i=0;i<pTempNode->NeighborCount;i++)
	{
		if(pTempNode->Neighbor[i]==ChildID)
			return -1;
	}
	//添加一個鄰居
	if(pTempNode->NeighborCount<10)
	{
		pTempNode->Neighbor[pTempNode->NeighborCount]=ChildID;
		pTempNode->NeighborDistance[pTempNode->NeighborCount]=dist;
		pTempNode->NeighborCount++;
		return pTempNode->NeighborCount-1;
	}
	else
	{
		return -1;
	}
}

bool CWayPoint::RemoveNeighbor(int ParentIndex,int ChildID)
{
	SWPNode *pTempNode=pNodeVector[ParentIndex];
	//移除一個鄰居
	for(int i=0;i<pTempNode->NeighborCount;i++)
	{
		if(pTempNode->Neighbor[i]==ChildID)	
		{
			for(int j=1;j<pTempNode->NeighborCount;j++)
			{
				pTempNode->Neighbor[i+j-1]=pTempNode->Neighbor[i+j];
				pTempNode->NeighborDistance[i+j-1]=pTempNode->NeighborDistance[i+j];
			}
			pTempNode->NeighborCount--;	
			i--;
		}

	}

	return true;
}

int CWayPoint::GetNodeCount()
{
	return pNodeVector.size();
}

SWPNode *CWayPoint::GetWPNode(int NodeIndex)
{
	return pNodeVector[NodeIndex];
}

SWPNode *CWayPoint::GetWPNodeByID(int NodeID)
{
	std::vector<SWPNode*>::iterator it=pNodeVector.begin();
	std::vector<SWPNode*>::iterator itEnd=pNodeVector.end();
	for(;it!=itEnd;++it)
	{
		if(((SWPNode*)(*it))->ID==NodeID)
			return (SWPNode*)(*it);
	}
	return NULL;
}
int CWayPoint::GetIndexFromID(int NodeID)
{
	for(int i=0;i<pNodeVector.size();i++)
	{
		if(pNodeVector[i]->ID==NodeID)
			return i;
	}
	return -1;
}

int CWayPoint::GetNearestIndex(int x,int y)
{
	int minDist=9999999;
	int minI=0;
	for(int i=0;i<pNodeVector.size();i++)
	{
		int tempDis=sqrt(pow((x-pNodeVector[i]->x),2)+pow(y-pNodeVector[i]->y,2));
		if(tempDis<minDist)
		{
			minI=i;
			minDist=tempDis;
		}
	}
	return minI;	
}

bool CWayPoint::SaveWayPointToFile(char *fileName)
{
	int i=0;
	int NodeCount=GetNodeCount();
	if(NodeCount==0)
		return false;
	FILE *fp=NULL;
	fp=fopen(fileName,"w");
	char s[1024];
	sprintf(s,"關鍵點數量=%d\n",NodeCount);
	fputs(s,fp);
	for(i=0;i<NodeCount;i++)
	{
		int x,y;
		x=GetWPNode(i)->x;
		y=GetWPNode(i)->y;
		sprintf(s,"%d x=%d;y=%d\n",GetWPNode(i)->ID,x,y);
		fputs(s,fp);
		int NeighborCount=GetWPNode(i)->NeighborCount;
		sprintf(s,"  由此出發共可到達%d個點\n",NeighborCount);
		fputs(s,fp);
		for(int j=0;j<NeighborCount;j++)
		{
			int ChildIndex,dist;
			ChildIndex=GetWPNode(i)->Neighbor[j];
			dist=GetWPNode(i)->NeighborDistance[j];
			sprintf(s,"  (%d)=%d\n",ChildIndex,dist);
			fputs(s,fp);
		}
	}
	fclose(fp);
	return true;
}

CWayPoint::~CWayPoint()
{

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天堂久久一区二区三区| 成人免费观看视频| av亚洲精华国产精华| 在线播放中文一区| 中文字幕一区二区三区乱码在线| 日韩 欧美一区二区三区| 成人国产精品免费网站| 精品国产免费视频| 亚洲大片在线观看| 91老师国产黑色丝袜在线| 精品国产3级a| 日韩 欧美一区二区三区| 欧美日韩在线一区二区| 亚洲三级免费观看| 成人午夜精品在线| 国产日韩亚洲欧美综合| 久久国产福利国产秒拍| 在线不卡欧美精品一区二区三区| 亚洲欧美日本在线| 成熟亚洲日本毛茸茸凸凹| 国产亚洲一区二区在线观看| 精品一区二区三区久久久| 5858s免费视频成人| 亚洲国产欧美日韩另类综合 | 日韩视频在线一区二区| 亚洲成精国产精品女| 在线亚洲免费视频| 亚洲一区二区成人在线观看| 日本高清免费不卡视频| 有坂深雪av一区二区精品| 色香蕉成人二区免费| 一区二区三区视频在线看| 色综合久久88色综合天天6| 亚洲精选视频免费看| 在线亚洲免费视频| 亚洲尤物在线视频观看| 欧美三级电影一区| 午夜精品久久久久久久久久久| 欧美性猛交xxxx黑人交| 亚洲综合一区二区精品导航| 欧美色倩网站大全免费| 蜜臀99久久精品久久久久久软件| 日韩一区二区三区观看| 国产一区二区三区在线看麻豆| 久久日一线二线三线suv| 国产激情视频一区二区在线观看 | 久久精品夜色噜噜亚洲aⅴ| 国产老女人精品毛片久久| 国产欧美一二三区| 91在线视频网址| 视频一区欧美日韩| 久久亚洲二区三区| 北条麻妃国产九九精品视频| 亚洲一区二区黄色| 久久在线观看免费| 成人av在线电影| 五月婷婷另类国产| 国产日韩精品久久久| 色综合久久久久久久| 蜜桃久久av一区| 亚洲欧美另类综合偷拍| 91精品国产色综合久久久蜜香臀| 国产精品一区二区在线看| 亚洲激情在线激情| 精品日韩一区二区三区| 一本到三区不卡视频| 久久99精品一区二区三区| 中文久久乱码一区二区| 欧美老女人第四色| 成人的网站免费观看| 日韩黄色片在线观看| 中文字幕欧美日本乱码一线二线 | 一本一本久久a久久精品综合麻豆| 午夜精彩视频在线观看不卡| 国产性色一区二区| 欧美日本一区二区在线观看| 国产69精品久久久久毛片| 亚洲图片一区二区| 国产精品视频线看| 精品伦理精品一区| 88在线观看91蜜桃国自产| 97精品久久久午夜一区二区三区| 黄色精品一二区| 天堂在线亚洲视频| 亚洲美女一区二区三区| 久久久美女艺术照精彩视频福利播放| 色婷婷久久久久swag精品| 国产精品影视在线| 久久国产精品免费| 婷婷成人综合网| 亚洲在线视频免费观看| 亚洲欧美另类久久久精品2019| 国产亚洲自拍一区| 久久亚洲影视婷婷| 精品国产区一区| 日韩一区二区中文字幕| 欧美日韩一区二区三区免费看| www.亚洲精品| 成人h精品动漫一区二区三区| 国产一区二区三区综合| 韩国欧美国产1区| 蜜臀久久久99精品久久久久久| 日韩精品成人一区二区在线| 亚洲va欧美va天堂v国产综合| 亚洲丝袜自拍清纯另类| 中文字幕一区三区| 国产精品久久久久久久久动漫 | 美女视频黄免费的久久| 亚洲国产美女搞黄色| 亚洲精品成a人| 一区二区三区产品免费精品久久75| 欧美国产日韩亚洲一区| 久久久久久免费毛片精品| 欧美本精品男人aⅴ天堂| 日韩免费成人网| 日韩精品中文字幕在线不卡尤物| 日韩欧美在线一区二区三区| 欧美大黄免费观看| 国产午夜精品久久久久久免费视| 久久免费看少妇高潮| 国产午夜亚洲精品羞羞网站| 国产精品另类一区| 中文字幕一区不卡| 一区二区在线观看视频| 香蕉乱码成人久久天堂爱免费| 日韩国产在线观看一区| 麻豆视频一区二区| 国产精品一区免费在线观看| 成人爱爱电影网址| 欧洲av在线精品| 欧美一级黄色录像| 久久久久久久精| 最新不卡av在线| 亚洲超碰精品一区二区| 国产专区欧美精品| av欧美精品.com| 欧美理论在线播放| 国产婷婷精品av在线| 亚洲精品国产视频| 美女视频黄频大全不卡视频在线播放| 国产剧情av麻豆香蕉精品| 91在线观看成人| 欧美精品久久一区二区三区| 久久伊人蜜桃av一区二区| 亚洲天堂a在线| 久久超碰97中文字幕| 97久久超碰精品国产| 日韩午夜三级在线| 亚洲图片欧美激情| 日韩高清在线不卡| 99国产一区二区三精品乱码| 69堂国产成人免费视频| 国产精品久久久久久久久免费丝袜 | 在线看日本不卡| 欧美日韩精品一区二区在线播放| 91精品国产综合久久久久| 国产三级欧美三级| 亚洲一区在线观看免费观看电影高清 | 日韩影视精彩在线| 99视频一区二区三区| 日韩一级精品视频在线观看| 国产精品久久99| 亚洲第一av色| av激情综合网| 国产亚洲精品免费| 美美哒免费高清在线观看视频一区二区| 粉嫩aⅴ一区二区三区四区| 欧美日韩一区二区三区四区 | 久久综合色鬼综合色| 亚洲综合在线五月| 国产精品一区二区三区网站| 欧美日韩你懂得| ...中文天堂在线一区| 激情深爱一区二区| 日韩一级黄色片| 亚洲综合丁香婷婷六月香| 国产一区二区三区黄视频 | www.66久久| 国产蜜臀97一区二区三区| 日本不卡123| 欧美日韩另类一区| 亚洲人成7777| 99re6这里只有精品视频在线观看| 精品粉嫩aⅴ一区二区三区四区| 日本一区中文字幕| 欧美日韩一区二区电影| 亚洲最新在线观看| 色吊一区二区三区| 亚洲人成网站色在线观看| 波多野结衣欧美| wwwwww.欧美系列| 激情综合亚洲精品| 精品播放一区二区| 国产一区二区调教| 国产日韩高清在线| av亚洲精华国产精华精| 亚洲私人黄色宅男| 欧美日韩在线播放一区| 亚洲成人免费影院| 欧美一区二区在线不卡|