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

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

?? netlayer.h

?? 北京市交通mo+visual c++開發實例
?? H
字號:
#pragma once

#include "MoMapLayer.h"
//-----------------------------------------------------------------------------------------
// 定義網絡上的一節點
class NetPoint 
{
public:
	double x; // X坐標
	double y; // Y坐標

public:
	NetPoint()
	{
		x = 0;
		y = 0;
	}

	NetPoint( double X, double Y)
	{
		x = X;
		y = Y;
	}
};
//-----------------------------------------------------------------------------------------
// 定義網絡上的一條線
class NetLine
{
// 屬性
public :
	CList<NetPoint, NetPoint&> m_pCoords; // 線段包含的節點的坐標
private:
	CMoMapLayer m_layer;  // 圖層對象

// 構造函數
public:
	NetLine(CMoMapLayer layer);
	~NetLine();

	// 計算線的幾何長度
	double CalcLength(); 
	// 通過線的id得到線數據
	BOOL GetLineData(int id); 
	// 得到距離某點最近的線段,返回該線段的id
	int GetNearestLineData( double x, double y); 
	// 判斷兩點是否重合
	BOOL IsPtCoincide( NetPoint ptFirst, NetPoint ptSecond );
	// 得到最鄰近的點
	void GetNearestPoint(NetPoint ptP, NetPoint ptA, NetPoint ptB, 
		                 NetPoint* ptNearest, double* dDistance );
	void GetNearestPoint(NetPoint point, NetPoint* ptNearestPoint, 
		                 int* nSegmentIndex, double* dLeastDistance);
	// 獲得根據給定點分裂線得到的兩個部分的比例
	BOOL GetSplitRatioByNearestPoint(NetPoint point, NetPoint* ptNearest, 
		                             double* dRatio );
};
//-----------------------------------------------------------------------------------------
// 定義網絡上的一條邊
class NetEdge
{
public:
	int   nLink;  // 連接的弧段索引(數組下標索引)
	float fAngle; // 水平夾角

public:
	NetEdge()
	{
		nLink = -1;
		fAngle = 0;
	}
};
//-----------------------------------------------------------------------------------------
// 定義網絡上的一節點,包含了與該節點相連的弧段信息
class NetNode : public NetPoint
{		
public:
	// 與該點連接的弧段數組, 弧段按角度排序
	CList<NetEdge, NetEdge&> m_arrLinks; 
		
public:
	NetNode() 	
	{
		x = 0;
		y = 0;
	}
	NetNode(double X, double Y) 
	{
		x = X;
		y = Y;
	}

	void operator=(const NetNode& netNode) 
	{
		x = netNode.x;
		y = netNode.y;
		for(int i=0; i<netNode.m_arrLinks.GetCount(); i++)
		{
			NetEdge neg = netNode.m_arrLinks.GetAt(
				      netNode.m_arrLinks.FindIndex(i));
			m_arrLinks.AddTail(neg);
		}
	}

	// 加入一個連接的弧段(調用前需確定弧段是連接在該點上的)
	BOOL Add( int nLink, double dAngle );
	// 刪除一個已連接的弧段
	BOOL Remove( int nLink );
	// 得到一個連接弧段的角度
	double GetLinkAngle( int nLink );
};
//-----------------------------------------------------------------------------------------
// 網絡弧段(鏈)類
class NetLink
{
public:
	int m_GeoID;         // 弧段ID(GeoID)
	int m_nFNode;        // 起始結點(數組下標索引)
	int m_nTNode;        // 終止結點(數組下標索引)
	double m_fLength;    // 長度
	double m_fFromImp;   // 正向阻力(阻力系數*長度 或 (1+阻力系數)*長度)
	double m_fToImp;     // 逆向阻力

public:
	NetLink();
	void Copy( NetLink link );    // 拷貝操作
	BOOL IsEqual( NetLink link ); // 判斷是否相等
};
//-----------------------------------------------------------------------------------------
// 用于分裂操作的結構
struct NetLinkSeg
{
	int     nSegID;   // 分裂點后面的部分的弧段索引(數組下標索引)
	double  dRatio;   // 分裂點前面的到起始結點部分的比例
};
//-----------------------------------------------------------------------------------------
// 用于備份弧段的類
class NetLinkBackup
{
public:
	int			m_nIndex;	// 弧段的索引
	NetLink		m_Link;		// 備份的弧段對象
	CList<NetLinkSeg, NetLinkSeg&> m_arrSegs; // 該弧段被多次分割的比例列表

public:
	NetLinkBackup()
	{
		m_nIndex = -1;
	}

	void operator=(const NetLinkBackup& netLink) 
	{
		m_nIndex = netLink.m_nIndex;
		m_Link = netLink.m_Link;
		for(int i=0; i<netLink.m_arrSegs.GetCount(); i++)
		{
			NetLinkSeg nLS = netLink.m_arrSegs.GetAt(
				             netLink.m_arrSegs.FindIndex(i));
			m_arrSegs.AddTail(nLS);
		}
	}

	BOOL Add( int nSeg, double dRatio );
};
//-----------------------------------------------------------------------------------------
// 定義網絡上的一條路徑
class NetPath
{
public:
	double	m_dLength;  // 該點到給定點的最短路徑長度, -1表示不連通
	int		m_nPreNode;	// 該點在該路徑上的前趨結點
public:
	NetPath()
	{
		m_dLength = -1;
		m_nPreNode = -1;
	}
};
//-----------------------------------------------------------------------------------------
class CNetLayer
{
private:
	CList<NetLink, NetLink&> m_arrLinks;	// 弧段表
	CList<NetNode, NetNode&> m_arrNodes;	// 節點表
	CList<NetLinkBackup, NetLinkBackup&> m_arrLinkBackups;	// 弧段備份表
    
	int		m_nLinkNum;		// 原始弧段數目(網絡拓撲建立完成后) 
	int		m_nNodeNum;		// 原始結點數目(網絡拓撲建立完成后) 
	NetPath* m_pPath;		// 某一個點到所有點的最短路徑
	CMoMapLayer	m_layer;    // 圖層對象
public:
	CNetLayer(CMoMapLayer layer);
	~CNetLayer(void);

	BOOL ReadNetTable();
	BOOL PathAnalysis(double x1, double y1, double x2, double y2, CList<double, double&>* path );
	BOOL LoadStops(CList<NetPoint, NetPoint&>* pPoints, CList<int, int&>* pNodes);
	BOOL UpdateLinkNodeTable( int nLineID, NetPoint ptNearest, double dRatio, int* nNewNode );
	int GetNode(int nLineID, int* nFNode, int* nTNode );
	double Path(int nBeginNode, int nEndNode, CList<int, int&>* pNodes, BOOL bWeight);
	BOOL CalcPath( int nNode, int nEndNode , BOOL bWeight );
	double GetConnectedDistance( int nNode1, int nNode2, BOOL bWeight );
	BOOL CreateResultPath(CList<int, int&>* pNodes, NetLine* line, BOOL bWeight);
	int IsConnectedDirectly(int nNode1, int nNode2, int* nLink, double* dDistance, BOOL bWeight);
	BOOL UnloadStops();
};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩欧美综合在线| 成人av第一页| 成人午夜伦理影院| 色妹子一区二区| 日韩午夜激情av| 日本一区二区视频在线观看| 亚洲精品精品亚洲| 奇米精品一区二区三区在线观看一| 韩日av一区二区| 一本大道久久a久久综合婷婷| 在线成人免费观看| 日本一区二区三区国色天香| 亚洲午夜羞羞片| 国产精品996| 欧美亚一区二区| 国产日韩欧美a| 偷拍自拍另类欧美| gogogo免费视频观看亚洲一| 欧美绝品在线观看成人午夜影视| 久久精品视频一区二区| 亚洲一区二区在线免费看| 国产精一区二区三区| 在线观看成人免费视频| 久久婷婷国产综合国色天香 | 久久精品国产亚洲高清剧情介绍| 风间由美性色一区二区三区| 4438成人网| 亚洲三级视频在线观看| 国产麻豆91精品| 欧美精品乱人伦久久久久久| 亚洲欧美综合色| 韩国一区二区在线观看| 欧美一a一片一级一片| 国产欧美日韩不卡免费| 日韩一级在线观看| 亚洲欧美自拍偷拍色图| 韩日av一区二区| 制服丝袜亚洲播放| 尤物av一区二区| 成人激情图片网| 欧美xxxxx裸体时装秀| 亚洲国产精品久久一线不卡| 不卡一区二区三区四区| 久久一区二区三区四区| 日韩av在线发布| 欧美午夜影院一区| 中文字幕中文字幕在线一区 | 一区二区三区欧美久久| 粉嫩av亚洲一区二区图片| 精品免费日韩av| 免费视频一区二区| 欧美图区在线视频| 一区二区三区高清| 99在线视频精品| 国产精品久久夜| 国产精品一级片在线观看| 欧美成人vr18sexvr| 日韩高清中文字幕一区| 欧美影院精品一区| 一区二区三区在线免费播放| 99久久精品99国产精品 | 一本色道久久综合亚洲aⅴ蜜桃| 国产亚洲精品福利| 国产麻豆精品theporn| 26uuuu精品一区二区| 久久机这里只有精品| 日韩欧美国产一区在线观看| 免费黄网站欧美| 日韩欧美一级特黄在线播放| 美女免费视频一区| 日韩免费电影一区| 久久99精品久久只有精品| 精品成人一区二区三区四区| 激情综合网av| 久久精品一区二区| 国产xxx精品视频大全| 国产精品视频一二| 91女人视频在线观看| 亚洲精品国产精品乱码不99| 日本精品裸体写真集在线观看| 一个色在线综合| 欧美日韩在线三级| 日韩av不卡一区二区| 欧美成人午夜电影| 国产经典欧美精品| 国产精品午夜在线观看| 91色porny在线视频| 亚洲精品福利视频网站| 欧美日韩久久一区二区| 男人操女人的视频在线观看欧美 | 国产综合色视频| 国产成人激情av| 欧美国产97人人爽人人喊| av在线不卡电影| 夜夜精品浪潮av一区二区三区| 欧美日韩一级大片网址| 美腿丝袜一区二区三区| 久久久午夜电影| 99v久久综合狠狠综合久久| 亚洲高清视频的网址| 91麻豆精品国产| 国产精品综合久久| 亚洲三级免费电影| 欧美一级夜夜爽| 福利91精品一区二区三区| 亚洲一区视频在线| 精品粉嫩超白一线天av| eeuss鲁片一区二区三区| 亚洲一区在线看| 久久久久久综合| 色偷偷成人一区二区三区91 | 日韩精品中文字幕一区| 粉嫩绯色av一区二区在线观看| 亚洲精选一二三| 精品国免费一区二区三区| 9色porny自拍视频一区二区| 日韩在线a电影| 中文字幕一区二区三区在线不卡| 欧美另类久久久品| 成人免费三级在线| 天天影视色香欲综合网老头| 久久久久久亚洲综合影院红桃| 色哟哟一区二区| 国产一区二区三区蝌蚪| 亚洲一区二区三区中文字幕在线| 日韩你懂的在线观看| 一本到高清视频免费精品| 美国十次综合导航| 一区二区三区丝袜| 国产亚洲精品福利| 91.成人天堂一区| www.日韩在线| 久久99国产精品久久99| 亚洲香蕉伊在人在线观| 中文字幕乱码日本亚洲一区二区| 欧美丰满嫩嫩电影| 99精品视频在线播放观看| 激情偷乱视频一区二区三区| 一区二区三区毛片| 国产欧美日韩视频一区二区| 91精品国产综合久久久久久久久久 | 色诱亚洲精品久久久久久| 精品一区二区久久久| 亚洲一区二区精品视频| 国产欧美日韩视频一区二区| 久久成人免费网站| 亚洲亚洲精品在线观看| 国产精品―色哟哟| www国产成人免费观看视频 深夜成人网 | 91麻豆精品国产| 一区二区三区国产豹纹内裤在线| 久久99九九99精品| 一本到三区不卡视频| 久久精品亚洲精品国产欧美| 亚洲电影在线免费观看| av亚洲产国偷v产偷v自拍| 欧美一级午夜免费电影| 亚洲午夜私人影院| 色综合一个色综合亚洲| 久久久777精品电影网影网 | 国产精品一二三区在线| 亚洲国产色一区| 中文字幕在线不卡一区二区三区| 精品久久人人做人人爽| 91精品国产综合久久精品麻豆 | 亚洲一区在线视频| 中文字幕一区在线观看视频| 国产亚洲一区字幕| 久久亚洲免费视频| 久久综合狠狠综合久久综合88| 91精品国产福利在线观看| 欧美日韩午夜在线| 欧美日韩一区视频| 欧美三级电影在线看| 欧美这里有精品| 欧美性大战久久| 欧美日韩视频一区二区| 欧美日韩国产一区二区三区地区| 色婷婷精品久久二区二区蜜臂av| 91亚洲精品久久久蜜桃| 91猫先生在线| 色偷偷一区二区三区| 91成人免费电影| 欧美无乱码久久久免费午夜一区| 中文字幕一区免费在线观看| 中文字幕欧美区| 亚洲三级免费观看| 一区二区三区四区高清精品免费观看| 亚洲免费观看视频| 亚洲国产综合人成综合网站| 亚洲va韩国va欧美va精品| 奇米色一区二区| 国产在线播放一区| 成人免费av资源| 91在线精品秘密一区二区| 91久久人澡人人添人人爽欧美| 欧美色老头old∨ideo| 欧美一级在线观看| 久久精品人人爽人人爽| 中文字幕一区二区三区色视频|