亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
美国三级日本三级久久99| 91行情网站电视在线观看高清版| 国产精品自在欧美一区| 欧美私人免费视频| 欧美激情综合网| 日日夜夜精品视频免费| 成人精品电影在线观看| 欧美成人乱码一区二区三区| 亚洲女女做受ⅹxx高潮| 国产成人免费视| 日韩欧美视频在线| 午夜影院久久久| 色一区在线观看| 亚洲免费观看高清完整版在线 | 欧美一级国产精品| 亚洲精品免费看| 99热国产精品| 国产三级精品三级| 国产另类ts人妖一区二区| 91精品国产色综合久久不卡蜜臀| 亚洲免费av观看| 一本一本久久a久久精品综合麻豆| 久久久不卡影院| 国内精品伊人久久久久av影院| 欧美日韩一级黄| 亚洲午夜在线观看视频在线| 一本色道久久综合亚洲91 | 日韩精品在线一区| 日韩精品色哟哟| 欧美高清dvd| 视频一区二区三区在线| 在线观看一区二区视频| 亚洲一区二区精品视频| 欧美三级视频在线观看| 午夜视频在线观看一区二区| 欧美午夜不卡在线观看免费| 亚洲一区二区3| 91麻豆精品国产91久久久资源速度 | 成人av集中营| 1024成人网色www| 91蝌蚪国产九色| 亚洲精品乱码久久久久久黑人| 色播五月激情综合网| 亚洲成人一二三| 日韩视频在线你懂得| 精品一区二区久久| 国产人妖乱国产精品人妖| 成人av网在线| 一二三四区精品视频| 欧美日韩国产精选| 麻豆精品久久精品色综合| ww久久中文字幕| 91在线视频观看| 午夜欧美电影在线观看| 日韩免费高清av| 丁香啪啪综合成人亚洲小说| 亚洲日本va在线观看| 欧美日韩1区2区| 国产一区二区日韩精品| 国产精品福利av| 欧美一区二区二区| 成人免费视频免费观看| 亚洲国产一区二区a毛片| 欧美成人三级在线| 成人av免费观看| 免费成人结看片| 国产精品久久三| 日韩欧美久久一区| av日韩在线网站| 久久精品国产亚洲高清剧情介绍| 国产精品你懂的在线欣赏| 精品视频在线看| 成人丝袜高跟foot| 日本不卡的三区四区五区| 亚洲国产精品传媒在线观看| 欧美另类z0zxhd电影| 成人午夜视频免费看| 日韩二区在线观看| 成人免费视频在线观看| 精品少妇一区二区三区在线播放| 成人激情校园春色| 蜜桃视频免费观看一区| 亚洲乱码日产精品bd| 久久亚洲一区二区三区明星换脸 | 成人一区在线观看| 丝袜诱惑制服诱惑色一区在线观看| 久久婷婷成人综合色| 欧美日韩视频不卡| 91香蕉视频mp4| 国产黄色成人av| 国产一区在线视频| 石原莉奈在线亚洲二区| 亚洲欧美日韩国产手机在线| 久久久久久久久伊人| 欧美一区二区三区男人的天堂| 日本电影亚洲天堂一区| 成人午夜私人影院| 国产精品66部| 黄页网站大全一区二区| 天天操天天干天天综合网| 亚洲另类中文字| 中文字幕成人在线观看| 久久人人爽人人爽| 亚洲精品视频在线看| 国产精品欧美极品| 国产精品理伦片| 久久久精品中文字幕麻豆发布| 日韩一区二区影院| 日韩午夜电影在线观看| 欧美日韩国产精品成人| 欧美性猛片aaaaaaa做受| 91在线观看美女| 91视频免费播放| 成人18视频日本| www.亚洲国产| 91片在线免费观看| 色综合久久久久综合99| 不卡一二三区首页| 99久久久无码国产精品| jiyouzz国产精品久久| av色综合久久天堂av综合| 91丝袜国产在线播放| 91在线云播放| 欧美写真视频网站| 欧美精品自拍偷拍| 日韩视频一区在线观看| 精品盗摄一区二区三区| 国产视频一区二区在线| 中文字幕日本不卡| 亚洲成人资源网| 日韩中文字幕1| 国内精品国产成人国产三级粉色| 国产麻豆成人传媒免费观看| 成人午夜大片免费观看| 日本精品一级二级| 欧美一区二区三区小说| 国产午夜精品福利| 亚洲女厕所小便bbb| 水野朝阳av一区二区三区| 久久国产精品露脸对白| 成人美女视频在线看| 在线看不卡av| 日韩精品一区二区三区蜜臀 | 欧美精品三级在线观看| 欧美电影免费观看完整版| 精品国产一区二区三区不卡| 日本一二三不卡| 日韩国产在线一| 成人丝袜18视频在线观看| 欧美日韩综合不卡| 国产免费观看久久| 首页亚洲欧美制服丝腿| 在线一区二区三区四区| 日韩欧美三级在线| 亚洲免费观看视频| 韩国毛片一区二区三区| 色噜噜狠狠色综合欧洲selulu| 精品裸体舞一区二区三区| 亚洲天天做日日做天天谢日日欢| 日韩av电影天堂| 日本韩国一区二区三区视频| 精品国产第一区二区三区观看体验 | 精品国产91久久久久久久妲己 | 91极品美女在线| 久久久久久久久久久电影| 亚洲图片欧美色图| 成人免费看的视频| 欧美岛国在线观看| 亚洲国产综合视频在线观看| 国产成人精品免费视频网站| 91精品国产免费| 一区二区三区影院| 丰满亚洲少妇av| 精品处破学生在线二十三| 午夜精品福利在线| 91久久线看在观草草青青| 国产欧美一区二区三区在线老狼| 日本v片在线高清不卡在线观看| 色综合网站在线| 欧美激情中文字幕| 国产福利精品一区二区| 欧美一区二区三区日韩视频| 亚洲国产精品一区二区www| av在线不卡电影| 欧美国产日韩亚洲一区| 精品一区二区免费看| 欧美草草影院在线视频| 日本sm残虐另类| 91精品国产日韩91久久久久久| 亚洲成人免费在线观看| 欧美三级电影在线看| 亚洲妇熟xx妇色黄| 欧美视频日韩视频在线观看| 一区二区免费视频| 欧美在线短视频| 亚洲18女电影在线观看| 欧美日韩激情在线| 秋霞国产午夜精品免费视频| 欧美一级精品在线| 精品亚洲免费视频|