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

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

?? contourtracer.h

?? 生成等值線的代碼 用VISUAL C++開發
?? H
字號:
// ContourTracer.h: interface for the CContourTracer class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(CONTOURTRACER_H_INCLUDED_)
#define CONTOURTRACER_H_INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

/*========================================================================
*        CContourTracer    
*        二維規則網格數據的『等值線追蹤』類
*        實現對給定值的等值線追蹤
*        追蹤算法為:網格方法
*     ----------------------------------------------
*        鄭元滿   jeny_man  中國地質大學(北京)地信學院
*        jeny_man@163.com  jeny_man@126.com
*        2004/02/14 
*
*     輸入:二維規則網格數據,網格數據信息,所要追蹤的值,輸出的存放位置      
*
*     輸出:一個指定值的等值線坐標鏈表,輸出結果放在由外部指定的m_pCurveList中
*      注:該追蹤類約定輸出的數據結構如下組織:
*
*       //一條等值線曲線的坐標
*      typedef CArray<CGeoPoint,CGeoPoint&> CCurve;
*       //等值線曲線鏈表(給定某值的等值線不限于一條)
*      typedef CTypedPtrList<CPtrList, CCurve*> CCurveList; 
*      使用該類時,外部需按該約定的數據結構來保存追蹤的輸出
*
*     用法:在調用ExecuteTracing()前必須調用
*            SetGridDataInfo、SetInput、SetInput
*			這三個函數設置網格數據信息和輸入、輸出
=========================================================================*/


typedef CArray<CGeoPoint,CGeoPoint&> CCurve; //一條等值線曲線的點集的坐標
typedef CTypedPtrList<CPtrList, CCurve*> CCurveList; //等值線曲線鏈表(給定某值的等值線不限于一條)

class CContourTracer
{
public:
	CContourTracer();
	~CContourTracer();

	void SetGridDataInfo(CGridDataInfo& dataInfo);
	void SetInput(float** ppGridData);
	void SetOutput(CCurveList* pCurveList);
	BOOL ExecuteTracing(float value);

private:
    //追蹤過程中需要利用如下三個輔助等值點完成追蹤: 
	//PreviousPoint點-->前一個等值點
	//CurrentPoint 點-->當前等值點
	//   NextPoint 點-->要追蹤的下一個等值點

 /*    網格單元橫向、縱向邊的序號(編號)

  首先說明的是:該算法實現中,對應于C/C++語言中二維數值用i表示行號,用j表示列號的情況,
                我們這里也用i表示網格數據的行號(向上增加),j表示網格數據的列號(向右增加)
                而且i,j都是從0開始計數
                標識一個網格交點時,行號在前,列號在右,如:(i,j)
	 
                (i+1,j)       (i+1,j+1)  
	                ____________
                   |            |
				   |            |
	縱邊(i,j)----→| (網格單元) |←----縱邊(i,j+1)
				   |            |
				   |____________|
                 (i,j)    ∣     (i,j+1)
						  橫邊(i,j)
       
	  注意:當標識一條邊時,說某一條邊(i,j),它即可以表示橫邊(i,j),也可以表示縱邊(i,j)
	  所以當標識一條邊時,需要用三個量來表示(i,j,HorV)-->(行號,列號,橫邊還是縱邊)
	  
*/
	
// 三個輔助等值點所在的橫向、縱向網格邊的序號,以及坐標
	struct IsoPoint
	{
		int i;   //該等值點所在邊的行號  
		int j;   //該等值點所在邊的列號
		BOOL bHorV; //在橫邊還是列邊上 1-->橫邊;0-->縱邊

		float x; //坐標
		float y;
		
		IsoPoint(){	memset(this,0,sizeof(IsoPoint));}

	}PreviousPoint,CurrentPoint,NextPoint;
	
	
	//xSide(i,j)---->標識網格橫邊上是否有當前等值點
	//ySide(i,j)---->標識網格縱邊上是否有當前等值點
	//xSide(i,j),ySide(i,j)中存儲的值為-2.0(說明該邊上無等值點) 或者是 r(r∈[0,1],說明該邊上有等值點)
	float **xSide;
	float **ySide; 

private:
	BOOL IsHavingPoint(float r);  
	void AllocateMemory();
	void FreeMemory();
	void InterpolateTracingValue(); //掃描并計算縱、橫邊上等值點的情況
	void TracingNextPoint(); //追蹤下一個等值點
	//{{
	    //-----Version1---------------
		void FromBottom2TopTracing();
		void FromLeft2RightTracing();
		void FromTop2BottomTracing();
		void FromRight2LeftTracing();
		//-----Version2---------------
		void FromBottom2TopTracingV2();
		void FromLeft2RightTracingV2();
		void FromTop2BottomTracingV2();
		void FromRight2LeftTracingV2();
    //}}

	void HandlingAfterNextPointFounded(int i, int j, BOOL bHorizon); //當下一個等值點找到后做相應的處理
	void CalcAndSaveOnePointCoord(int i, int j, BOOL bHorizon,float &x, float &y);//計算一個等值點的坐標并保存
	
    void TracingOneNonClosedContour();
	void TracingNonClosedContour();
	void TracingOneClosedContour(int i, int j);
	void TracingClosedContour();
	

private:
	//輸入數據
	CGridDataInfo m_gridDataInfo;  //網格數據信息
	float**       m_ppGridData;    //網格數據
	float         m_valueTracing;  //當前要追蹤的值

	//輸出數據的存放位置(需由外部在執行追蹤前設定)
	CCurveList*  m_pCurveList;      //存儲追蹤出來的等值線鏈的坐標

	//保存輸出數據時的幫助變量
	CCurve*     m_currentCurveLine; //指向當前的等值線曲線

private:
	CContourTracer(const CContourTracer& rhs); //not implimented
	CContourTracer& operator=(const CContourTracer& rhs);//not implimented
		
};

inline void CContourTracer::SetInput(float** ppGridData)
{
	ASSERT( ppGridData != NULL );
	m_ppGridData = ppGridData;
}

inline void CContourTracer::SetOutput(CCurveList* pCurveList)
{//指定輸出位置
	ASSERT( pCurveList != NULL );
	m_pCurveList = pCurveList;
}

inline void CContourTracer::SetGridDataInfo(CGridDataInfo& dataInfo)
{
	m_gridDataInfo = dataInfo;
}

inline BOOL CContourTracer::IsHavingPoint(float r)
{
	//邊上是否有等值點存在
	
	if( r == -2.0f )
	{
		return FALSE;
	}
	else
	{
		/*r∈[0,1] (閉區間)*/
		if( r>1 || r<0)
			return FALSE;
		else
			return TRUE;
	}
	
}

#endif // !defined(CONTOURTRACER_H_INCLUDED_)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品xxxxbbbb| 精品一区免费av| 日韩视频中午一区| 欧美视频在线观看一区| 91丨porny丨户外露出| 九色|91porny| 久草在线在线精品观看| 日韩av电影免费观看高清完整版在线观看| 欧美国产日韩亚洲一区| 亚洲日本va午夜在线电影| 9久草视频在线视频精品| 国产日韩欧美精品综合| 国产一区二区三区免费| 国产精品久久久久影院老司| 成人99免费视频| 伊人婷婷欧美激情| 欧美三级韩国三级日本三斤| 蜜臀av性久久久久蜜臀aⅴ| 久久久精品蜜桃| 91亚洲永久精品| 日韩在线一区二区| 久久蜜臀中文字幕| 色综合一区二区三区| 欧美私人免费视频| 国产精品你懂的在线欣赏| 奇米精品一区二区三区四区| 国产成人av一区二区三区在线观看| 欧美精品v国产精品v日韩精品| 免费看欧美美女黄的网站| 国产日韩欧美一区二区三区综合| 成人毛片在线观看| 日韩影院在线观看| 免费欧美在线视频| 久久精品综合网| 中文字幕乱码一区二区免费| 亚洲一区二区三区中文字幕| 亚洲自拍偷拍欧美| 欧美色欧美亚洲另类二区| 亚洲欧洲av在线| 奇米影视一区二区三区小说| 国产老肥熟一区二区三区| 精品美女一区二区| 亚洲成年人影院| 精品国产a毛片| 亚洲第一福利一区| 欧美中文字幕一区二区三区亚洲| 中文字幕乱码一区二区免费| 日韩激情在线观看| 一本久久综合亚洲鲁鲁五月天 | 国产一区二区三区免费观看| 免费人成在线不卡| 色成人在线视频| 一区二区三区av电影 | 日韩一区二区电影在线| 99精品国产99久久久久久白柏| 亚洲欧洲日韩综合一区二区| 99综合电影在线视频| 蜜桃视频在线观看一区| 中文字幕一区二区三中文字幕| 欧美性极品少妇| 九九在线精品视频| 一区二区三区四区乱视频| 国产午夜精品久久久久久久| 日本韩国欧美三级| 国产精品夜夜嗨| 丝袜诱惑制服诱惑色一区在线观看 | 国产91丝袜在线观看| 亚洲欧洲成人av每日更新| 欧美一区二区三区播放老司机| 国产suv一区二区三区88区| 蜜臀久久99精品久久久久宅男 | 欧美优质美女网站| 国产最新精品精品你懂的| 亚洲成人av免费| 国产精品卡一卡二卡三| 精品国产一区二区三区久久久蜜月 | 91亚洲精品久久久蜜桃网站 | 69堂亚洲精品首页| 欧美这里有精品| 欧美在线不卡一区| 欧美日韩一区二区在线观看视频 | 亚洲欧美日韩在线| 国产精品美女久久久久aⅴ| 国产日产欧美一区二区视频| 久久久亚洲精华液精华液精华液| 久久精品人人做人人爽97| 久久久影院官网| 亚洲欧美成人一区二区三区| 亚洲视频综合在线| 午夜电影网一区| 国产一区二区精品久久99| 成人sese在线| 欧美三电影在线| 久久免费电影网| 亚洲一区二区偷拍精品| 亚洲风情在线资源站| 青青草成人在线观看| 粉嫩绯色av一区二区在线观看| 91色porny| 欧美精品一区二区三区高清aⅴ | 国产成人免费9x9x人网站视频| 成人免费毛片嘿嘿连载视频| 一本大道av一区二区在线播放| 欧美一区二区在线视频| 欧美岛国在线观看| 一个色妞综合视频在线观看| 蜜臀精品一区二区三区在线观看 | 国产精品免费免费| 亚洲国产日日夜夜| 91色porny| 精品国产伦一区二区三区观看方式| 自拍视频在线观看一区二区| 国产一区二区不卡| 欧美艳星brazzers| 一区二区中文视频| 国产成人综合在线观看| 972aa.com艺术欧美| 国产精品丝袜黑色高跟| 久久aⅴ国产欧美74aaa| 欧美日本一区二区| 日韩一区日韩二区| 播五月开心婷婷综合| 国产视频一区二区在线| 激情偷乱视频一区二区三区| 欧美精品一级二级三级| 亚洲国产视频一区| 日本道色综合久久| 亚洲最大色网站| 在线日韩一区二区| 青青草91视频| 国产清纯白嫩初高生在线观看91 | 午夜av一区二区| 欧美三级电影在线看| 亚洲国产人成综合网站| 在线不卡一区二区| 不卡在线观看av| 亚洲人123区| 在线播放中文字幕一区| 经典一区二区三区| 亚洲欧美日韩在线| 日韩一区二区电影在线| 国产剧情一区二区| 午夜不卡av免费| 久久久91精品国产一区二区精品 | 婷婷中文字幕一区三区| 久久综合久色欧美综合狠狠| 9色porny自拍视频一区二区| 亚洲va韩国va欧美va精品| 日本一区二区在线不卡| 欧美婷婷六月丁香综合色| 亚洲成av人片| 国产亚洲精品bt天堂精选| av成人免费在线| 亚洲国产日产av| 亚洲人吸女人奶水| 国产女人18水真多18精品一级做| 欧美亚洲国产bt| 色婷婷综合久久久久中文 | 欧美一二三在线| av网站免费线看精品| 韩国一区二区三区| 天天综合网 天天综合色| 一区二区久久久| 国产精品大尺度| 中文在线一区二区| 国产精品你懂的在线| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 粉嫩蜜臀av国产精品网站| 免费高清在线视频一区·| 日本欧美加勒比视频| 日本伊人色综合网| 青青草原综合久久大伊人精品优势| 亚洲综合丁香婷婷六月香| 26uuu久久天堂性欧美| 精品伦理精品一区| 日韩一级黄色片| 久久综合九色综合欧美98| 2020日本不卡一区二区视频| 欧美成人高清电影在线| 久久久久综合网| 中文在线资源观看网站视频免费不卡| 国产精品久久久99| 欧美日韩一区二区在线观看视频 | 日本欧美久久久久免费播放网| 三级不卡在线观看| 国产激情一区二区三区四区| 成人国产精品免费网站| 成人一区二区三区中文字幕| 日本韩国一区二区三区视频| 日韩欧美一区二区视频| 日本一区二区综合亚洲| 五月天久久比比资源色| 国产精品一区二区久久不卡| 99精品久久免费看蜜臀剧情介绍 | 亚洲国产成人高清精品| 免费高清在线一区| 99久久久精品免费观看国产蜜| 日韩一区二区在线免费观看| 亚洲人被黑人高潮完整版| 国产一区二区三区香蕉|