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

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

?? cmaptsp.cpp

?? 《游戲編程中的人工智能技術》一書中4
?? CPP
字號:
#include "CmapTSP.h"



//--------------------Create Cities-------------------------
//
//	Evenly spaces the cities on the perimeter of a wheel and
//  returns a vector of their coordinates
//----------------------------------------------------------
void CmapTSP::CreateCitiesCircular()
{
	//first caculate the radius of spread and the origin
	const int margin = 50;
	
	double radius;

	if (m_MapHeight < m_MapWidth)
	{
		radius = (m_MapHeight / 2) - margin;
	}

	else
	{
		radius = (m_MapWidth / 2) - margin;
	}
	
	CoOrd origin(m_MapWidth / 2, m_MapHeight / 2);

	//calculate angle division between adjacent cities.
	double SegmentSize = 2 * pi / m_NumCities;
	
	double angle = 0;
	
	vector<CoOrd> vecCities;
	
	while (angle < 2 * pi)
	{
		CoOrd ThisCity;
		
		ThisCity.x = radius * sin(angle) + origin.x;
		ThisCity.y = radius * cos(angle) + origin.y;
		
		m_vecCityCoOrds.push_back(ThisCity);
		
		angle += SegmentSize;
	}
}
//-------------------------------BestPossibleFitness---------------------------------
//
//	calculates the distance of the optimum route. We use this so we
//	can tell when to stop each run
//----------------------------------------------------------------------
void CmapTSP::CalculateBestPossibleRoute()
{
	m_dBestPossibleRoute = 0;
	
	for (int city=0; city<m_vecCityCoOrds.size()-1; ++city)
	{
		m_dBestPossibleRoute += CalculateA_to_B(m_vecCityCoOrds[city], m_vecCityCoOrds[city+1]);
		
		//add in a small amount to cover any precision errors we may have made
		m_dBestPossibleRoute += EPSILON;
	}
	
	//add in the distance from the last to the first
	m_dBestPossibleRoute += CalculateA_to_B(m_vecCityCoOrds[m_vecCityCoOrds.size()-1], m_vecCityCoOrds[0]);
}

//---------------------Calculate Distance----------------------
//
//	returns the distance between the two given cities
//-------------------------------------------------------------
double CmapTSP::CalculateA_to_B(const CoOrd &city1, const CoOrd &city2)
{
	double xDist = city1.x - city2.x;
	double yDist = city1.y - city2.y;
	
	return sqrt(xDist*xDist + yDist*yDist);
}

//-----------------Calculate Fitness ---------------------------
//
//	calculates the total distance the salesman must travel for
//	the given order of cities
//--------------------------------------------------------------
double CmapTSP::GetTourLength(const vector<int> &route)
{
	double TotalDistance = 0;
	
	for (int i=0; i<route.size()-1; ++i)
	{
		int city1 = route[i];
		int city2 = route[i+1];
		
		TotalDistance += CalculateA_to_B(m_vecCityCoOrds[city1], m_vecCityCoOrds[city2]);
	}
	
	//don't forget this is a closed loop so we need to add in the distance 
	//from the last city visited back to the first
	int last  = route[route.size()-1];
	int first = route[0];
	
	TotalDistance += CalculateA_to_B(m_vecCityCoOrds[last], m_vecCityCoOrds[first]);
	
	return TotalDistance;
}
//--------------------------- Refresh --------------------------------
//
//	used to recalculate the city positions and the best possible tour 
//	if map sizes are changed (eg if user changes window size)
//--------------------------------------------------------------------
void CmapTSP::Resize(const int new_width, const int new_height)
{
	m_MapWidth  = new_width;
	m_MapHeight = new_height;

	m_vecCityCoOrds.clear();

	CreateCitiesCircular();
	
	CalculateBestPossibleRoute();
}



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲六月丁香色婷婷综合久久| 欧美韩国日本综合| 蜜桃久久久久久久| 国产亚洲精品aa| 日韩视频中午一区| 久久国内精品视频| 欧美国产一区视频在线观看| 日韩一区二区在线看| 在线这里只有精品| 国产精品九色蝌蚪自拍| 一区二区三区成人| 日韩精品一区二区三区视频播放| 欧美综合在线视频| 成人91在线观看| 色菇凉天天综合网| 97se狠狠狠综合亚洲狠狠| 欧美性videosxxxxx| 国产不卡在线视频| 91在线观看一区二区| 在线视频你懂得一区| 成人黄色软件下载| 国产精品热久久久久夜色精品三区 | 亚洲精品免费播放| 精品国产一二三| 亚洲精品菠萝久久久久久久| 国产亚洲精品中文字幕| 欧美精品一区二区三区视频| 日韩午夜精品电影| 国产精品久久久久影视| 中文字幕成人网| 国产欧美日韩精品一区| 日本一区二区视频在线观看| 精品国产91久久久久久久妲己| 国产视频亚洲色图| 一区二区三区色| 91福利在线导航| 欧美日本一道本| 欧日韩精品视频| 精品对白一区国产伦| 国产精品一区二区在线观看网站| 国产美女精品在线| 高清久久久久久| 欧美色图一区二区三区| 久久久亚洲欧洲日产国码αv| 亚洲自拍另类综合| 日韩福利电影在线| 国内精品国产三级国产a久久| 国产成人啪免费观看软件| 欧美日韩国产色站一区二区三区| 欧美视频中文字幕| 国产日本亚洲高清| 亚洲视频免费在线观看| 国产成人鲁色资源国产91色综| 播五月开心婷婷综合| 91麻豆精品国产91久久久更新时间| 卡一卡二国产精品| 日韩精品色哟哟| 蜜臀av一区二区在线观看| 久久久国产精品麻豆| 亚洲综合区在线| 色成人在线视频| 亚洲人一二三区| 日本欧美肥老太交大片| 欧美日韩亚洲综合在线| 欧美老肥妇做.爰bbww| 亚洲欧美另类久久久精品 | 777午夜精品免费视频| 国产亚洲欧美在线| 亚洲永久免费视频| 日韩欧美亚洲一区二区| 亚洲欧洲国产日本综合| 99精品视频在线免费观看| 久久亚洲春色中文字幕久久久| 国产精品成人免费| 欧美一区二区三区四区五区| 国产精品青草综合久久久久99| 国产乱子伦视频一区二区三区| 91丨九色丨尤物| 色菇凉天天综合网| 亚洲私人黄色宅男| 国产欧美一区二区三区在线看蜜臀| 久久精品国产亚洲高清剧情介绍| 日本一二三不卡| 美脚の诱脚舐め脚责91| 欧洲一区二区三区在线| 亚洲aaa精品| 欧美一级日韩免费不卡| 欧美一区二区三区思思人| 亚洲欧美电影一区二区| 成人精品视频一区| 亚洲日本一区二区三区| caoporen国产精品视频| 久久精品视频免费| 国产成人三级在线观看| 日韩你懂的在线播放| 国产成人综合网站| 一区二区三区高清不卡| 日韩欧美高清在线| 一区二区三区 在线观看视频| 91久久精品一区二区三| 天天综合色天天| 精品噜噜噜噜久久久久久久久试看 | 久久99精品视频| 国产欧美日本一区二区三区| 不卡视频在线观看| 国产专区欧美精品| 国产女同性恋一区二区| 国产激情视频一区二区三区欧美| 国产精品看片你懂得| 99精品国产一区二区三区不卡| 日韩欧美久久久| 9久草视频在线视频精品| 欧美视频一区二| 亚洲欧洲成人精品av97| 色噜噜狠狠成人中文综合| 黑人巨大精品欧美黑白配亚洲| 亚洲日穴在线视频| 亚洲一区中文日韩| 欧美白人最猛性xxxxx69交| 国产在线精品不卡| 亚洲影院理伦片| 欧美一级免费观看| 色综合色狠狠天天综合色| 一区二区三区四区蜜桃| 日韩欧美国产一区二区在线播放| 99这里只有精品| 欧美午夜精品理论片a级按摩| 国产精品久久久久久久久免费樱桃| 91丨九色丨蝌蚪富婆spa| 亚洲黄色尤物视频| 中文一区一区三区高中清不卡| 26uuu另类欧美亚洲曰本| 欧美性xxxxx极品少妇| 日本三级韩国三级欧美三级| 国产精品久久午夜夜伦鲁鲁| 精品美女被调教视频大全网站| 96av麻豆蜜桃一区二区| 亚洲精品日日夜夜| 欧美专区日韩专区| 国产激情一区二区三区桃花岛亚洲| 日韩成人av影视| 午夜精品在线看| 中文字幕国产一区| 久久免费的精品国产v∧| 777午夜精品视频在线播放| 成人免费黄色在线| 国产精品1区2区| www成人在线观看| 精品免费视频.| 欧美一区二区视频网站| 精品视频999| 91最新地址在线播放| 午夜精品一区在线观看| 国产精品久久久久影院老司| 国产日韩欧美综合一区| 国产欧美日本一区视频| 国产清纯美女被跳蛋高潮一区二区久久w| 欧美自拍偷拍午夜视频| 成人免费看片app下载| 另类中文字幕网| 亚洲国产视频网站| 亚洲综合一区二区精品导航| 亚洲免费在线看| 天堂蜜桃一区二区三区| 五月天激情综合| 欧美日韩高清一区二区三区| 91影院在线免费观看| 国产91精品精华液一区二区三区| 精品视频在线免费看| 国产一区二区三区精品欧美日韩一区二区三区| 亚洲综合成人在线视频| 国产一区 二区| www.亚洲色图| 91色视频在线| 在线不卡中文字幕| 精品久久国产字幕高潮| 国产亚洲一本大道中文在线| 国产日韩av一区二区| 精品欧美一区二区在线观看| 91麻豆蜜桃一区二区三区| 欧美亚州韩日在线看免费版国语版| 欧美午夜片在线看| 天天爽夜夜爽夜夜爽精品视频| 久久精品一二三| 欧美mv和日韩mv国产网站| 久久久久久99久久久精品网站| 国产精品区一区二区三| 毛片一区二区三区| 国产精品一区二区久激情瑜伽| 粉嫩13p一区二区三区| 不卡av在线免费观看| 欧美一级欧美三级在线观看 | 久久精品日韩一区二区三区| 国产精品视频一二三区| 日韩一区日韩二区| 国产精品国产自产拍高清av| 一区二区三国产精华液| 欧美日韩不卡一区二区| 亚洲男人的天堂在线aⅴ视频| 日本道免费精品一区二区三区|