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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? colorlookuptable.cpp

?? 生成等值線的代碼 用VISUAL C++開發(fā)
?? CPP
字號(hào):
// ColorLookUpTable.cpp: implementation of the CColorLookUpTable class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "ContourGenerator.h"
#include "ColorLookUpTable.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CColorLookUpTable::CColorLookUpTable()
{
	m_ValueMin = m_ValueMax = 0;

	//缺省顏色表為RainBow顏色表
	m_ColorTable.Add( CColorNode(0.f,RGB(153,102,255)) );
	m_ColorTable.Add( CColorNode(0.2f,0x0000FF) );
	m_ColorTable.Add( CColorNode(0.4f,0x00FF00) );
	m_ColorTable.Add( CColorNode(0.6f,0xFFFF00) );
	m_ColorTable.Add( CColorNode(0.8f,RGB(255,102,0)) );
	m_ColorTable.Add( CColorNode(1.f,0xFF0000) );
}

CColorLookUpTable::~CColorLookUpTable()
{

}

//根據(jù)pos的位置找出在ColorTable中對(duì)應(yīng)的顏色,
//pos為0~1的值
COLORREF CColorLookUpTable::GetColor(float pos) const
{
	ASSERT( pos>=0.f && pos<=1.0f );
	
	if(pos<=m_ColorTable.GetAt(0).pos)
		return m_ColorTable.GetAt(0).color;
	
	
	int count=m_ColorTable.GetSize();
	float ps = 0;
	
	for(int i=0; i<count; i++)
	{
		ps = m_ColorTable[i].pos;

		if( pos == ps)
		{
			return m_ColorTable[i].color;
		}
		else if( pos > ps )
		{
			continue;
		}
		else if( pos < ps )
		{ 
			float ratio = (                 pos - m_ColorTable[i-1].pos ) / 
				          ( m_ColorTable[i].pos - m_ColorTable[i-1].pos );

			COLORREF color = m_ColorTable[i-1].color;
			BYTE s_r = GetRValue(color);
			BYTE s_g = GetGValue(color);
			BYTE s_b = GetBValue(color);
			
			color = m_ColorTable[i].color;
			BYTE e_r = GetRValue(color);
			BYTE e_g = GetGValue(color);
			BYTE e_b = GetBValue(color);
			
			return RGB(s_r+(e_r-s_r)*ratio,
				       s_g+(e_g-s_g)*ratio,
				       s_b+(e_b-s_b)*ratio);
		}
	}

	return m_ColorTable.GetAt(count-1).color;
	

}

void CColorLookUpTable::SetColor(float pos, COLORREF newClr)
{
	ASSERT( pos>=0.f && pos<=1.0f );

	InsertColorIntoTable(pos,newClr);


}

 //在顏色表中查詢v值的顏色
COLORREF CColorLookUpTable::LookUpColor(float v) const
{
	ASSERT( v>=m_ValueMin && v<=m_ValueMax );

	return GetColor( (v-m_ValueMin)/(m_ValueMax-m_ValueMin) );
}

//向顏色表中加入顏色節(jié)點(diǎn),根據(jù)pos從小到大順序插入,同時(shí)返回插入后所在的位置
int CColorLookUpTable::InsertColorIntoTable(float pos, COLORREF newClr)
{
	ASSERT( pos>=0.f && pos<=1.0f );

	int count = m_ColorTable.GetSize();

	float p = 0.f;
	for(int i=0; i<count; i++)
	{
		p = m_ColorTable.GetAt(i).pos;
		if( pos > p)
		{			
			continue;
		}
		else if( pos == p )
		{
            m_ColorTable[i].color = newClr;  //修改
			return i;
		}
		else if( pos < p  )
		{
			m_ColorTable.InsertAt(i,CColorNode(pos,newClr));
			return i;
		}
	}
	
	return m_ColorTable.Add(CColorNode(pos,newClr));
}

//刪除顏色表中的顏色節(jié)點(diǎn)
void CColorLookUpTable::RemoveColorFromTable(float pos)
{
	int nSize = m_ColorTable.GetSize();

	for(int i=0; i<nSize; i++)
	{
		if( m_ColorTable.GetAt(i).pos == pos )
		{
			m_ColorTable.RemoveAt(i);
		}
	}

}

void CColorLookUpTable::GradientRectangle(CDC* pDC, const CRect& drawRect,
										  COLORREF clrStart,COLORREF clrEnd)
{//從clrStart開始到clrEnd漸變填充矩形drawRect
	

	int width  = drawRect.Width();
	int height = drawRect.Height();

	CPoint pt0 = drawRect.TopLeft(); //左上角
	CPoint pt1 = drawRect.BottomRight(); //右下角

	BYTE r,g,b;

	//按像素填充顏色
	COLORREF fillClr;

    for(int i=pt0.x; i<pt1.x; i++)
	{
		//線性插值
		 r = i*( GetRValue(clrEnd) - GetRValue(clrStart) ) / width + ( pt1.x*GetRValue(clrStart) - pt0.x*GetRValue(clrEnd) )/width;
		 g = i*( GetGValue(clrEnd) - GetGValue(clrStart) ) / width + ( pt1.x*GetGValue(clrStart) - pt0.x*GetGValue(clrEnd) )/width;
		 b = i*( GetBValue(clrEnd) - GetBValue(clrStart) ) / width + ( pt1.x*GetBValue(clrStart) - pt0.x*GetBValue(clrEnd) )/width;
		 
		 fillClr = RGB(r,g,b);
		
		for(int j=pt0.y; j<pt1.y; j++)
		{
			//MemDC.SetPixelV(i,j,RGB(r,g,b));
			pDC->SetPixelV(i,j,fillClr);
		}
	}

 

}

//繪制顏色表的顏色譜
void CColorLookUpTable::DrawColorSpectrum(CDC* pDC, const CRect& drawRect)
{
	int nSize = m_ColorTable.GetSize();

	CRect rect(drawRect);
    
	for(int i=1; i<nSize; i++)//i從1開始
	{
		rect.right = drawRect.left + int(drawRect.Width()*m_ColorTable.GetAt(i).pos);

		GradientRectangle(pDC,rect,m_ColorTable.GetAt(i-1).color,m_ColorTable.GetAt(i).color);
		
		rect.left = rect.right;
	}
	
}

BOOL CColorLookUpTable::LoadColorTable(const CString& filePath )
{
	FILE* fp=fopen(filePath,"rt");

	if(!fp)
	{
		AfxMessageBox("Open error!!");
		return FALSE;
	}

	char head[13]="";
	int headlen=strlen("ColorMap 1 1");
	fread( head, sizeof( char ), headlen, fp );
	if(strcmp(head,"ColorMap 1 1")!=0)
	{
		AfxMessageBox("文件格式有誤,不能打開文件.");
		fclose(fp);
		return FALSE;
	}

	//-------開始讀取顏色表------------------
	m_ColorTable.RemoveAll();

	UINT r,g,b;
	float pos;
	while(!feof(fp))
	{
		fscanf(fp,"%f%d%d%d",&pos, &r, &g, &b);
		m_ColorTable.Add( CColorNode(pos/100.f,RGB(r,g,b)) );
		if(pos>=100.f)
			break;
	}

	fclose(fp);

	return TRUE;

}

BOOL CColorLookUpTable::SaveColorTable(const CString& filePath )
{
     //Don't call
	//not impemented.......

	return FALSE; 

}


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
另类中文字幕网| 欧美一区二区高清| 成人激情校园春色| 国产露脸91国语对白| 精品制服美女久久| 狠狠色丁香九九婷婷综合五月| 日本不卡的三区四区五区| 日韩制服丝袜av| 日韩成人dvd| 久久国产视频网| 国产精品中文字幕日韩精品| 国产91露脸合集magnet | 国产在线精品视频| 久久精品99国产精品| 免费观看在线色综合| 激情另类小说区图片区视频区| 国产专区欧美精品| 成人综合日日夜夜| 91视频xxxx| 精品视频一区二区三区免费| 欧美高清你懂得| 久久中文字幕电影| 国产精品国产三级国产普通话三级 | 一区二区三区自拍| 婷婷综合另类小说色区| 韩日精品视频一区| 春色校园综合激情亚洲| 91网上在线视频| 欧美色图一区二区三区| 欧美一区二区成人| 久久精品在这里| 亚洲人成亚洲人成在线观看图片| 亚洲一区二区在线观看视频| 亚洲国产精品精华液网站| 男女性色大片免费观看一区二区 | 这里只有精品免费| 精品国产伦理网| 日韩美女视频19| 日韩一区精品字幕| 国产成人午夜精品5599| 在线一区二区观看| 欧美不卡在线视频| 亚洲天堂a在线| 日本亚洲天堂网| 成人免费视频视频在线观看免费| 色综合色狠狠综合色| 日韩三级伦理片妻子的秘密按摩| 中文字幕精品在线不卡| 亚洲国产精品一区二区久久恐怖片| 看电视剧不卡顿的网站| 91麻豆国产精品久久| 欧美一区二区视频在线观看| 国产精品看片你懂得| 亚洲成人免费观看| 成人综合婷婷国产精品久久免费| 欧美日韩国产高清一区二区| 国产亚洲成年网址在线观看| 亚洲成人精品影院| www.欧美日韩| 欧美电影免费观看高清完整版在线观看 | 成人午夜av电影| 在线综合视频播放| 亚洲欧美综合色| 黑人精品欧美一区二区蜜桃| 欧美四级电影在线观看| 日本一区二区免费在线观看视频| 亚洲综合一区在线| 成人蜜臀av电影| 日韩三级免费观看| 亚洲成人激情社区| 97精品国产露脸对白| 久久嫩草精品久久久精品| 亚洲成av人在线观看| 91免费看`日韩一区二区| 久久久亚洲国产美女国产盗摄 | 成人性生交大片免费看中文网站 | 午夜精品久久久久久久久| 99视频有精品| 国产亚洲短视频| 久久成人精品无人区| 欧美日韩三级一区二区| 亚洲摸摸操操av| 99久免费精品视频在线观看| 日韩精品一区二区三区视频| 丝袜美腿亚洲综合| 在线一区二区三区四区| 最新热久久免费视频| 福利一区福利二区| 久久久亚洲欧洲日产国码αv| 美脚の诱脚舐め脚责91| 欧美高清精品3d| 午夜成人在线视频| 欧美三级在线看| 亚洲一区av在线| 欧美色窝79yyyycom| 亚洲自拍另类综合| 欧洲精品在线观看| 亚洲一级二级在线| 欧美视频一区二区三区在线观看 | 国产在线视视频有精品| 精品美女一区二区| 韩国午夜理伦三级不卡影院| 日韩精品一区二区三区在线播放| 男男gaygay亚洲| 日韩一区二区中文字幕| 免费日本视频一区| 日韩一区二区电影| 精品一区二区三区蜜桃| 精品国产91亚洲一区二区三区婷婷 | 日韩电影在线看| 欧美一卡2卡3卡4卡| 日本成人在线一区| 亚洲精品一区二区三区香蕉| 国产一区二区伦理片| 国产欧美精品一区二区色综合| 高清国产一区二区| 日韩美女视频一区| 欧美亚洲禁片免费| 首页国产丝袜综合| 日韩欧美美女一区二区三区| 国产一区二区免费视频| 国产精品久久久久影院| 色天使久久综合网天天| 亚洲大片精品永久免费| 日韩女优电影在线观看| 国产成人亚洲综合a∨婷婷| 中文字幕亚洲在| 在线免费观看日本一区| 男女男精品网站| 国产日韩亚洲欧美综合| 色综合亚洲欧洲| 日本免费新一区视频| 久久色在线观看| 91网站最新地址| 三级精品在线观看| 久久综合色婷婷| 99这里只有久久精品视频| 亚洲第一会所有码转帖| 欧美精品一区二区精品网| 国产91对白在线观看九色| 亚洲精品成人在线| 日韩免费一区二区| av一二三不卡影片| 日一区二区三区| 国产网红主播福利一区二区| 在线亚洲人成电影网站色www| 老司机精品视频线观看86 | 国内精品国产三级国产a久久| 国产精品无圣光一区二区| 欧美色倩网站大全免费| 国产一区二区毛片| 亚洲一区二区三区爽爽爽爽爽| 精品日韩99亚洲| 在线视频你懂得一区| 国产美女一区二区三区| 亚洲国产精品影院| 欧美国产一区在线| 3d动漫精品啪啪1区2区免费| 粉嫩蜜臀av国产精品网站| 午夜国产不卡在线观看视频| 国产日产精品一区| 欧美精品一卡二卡| 91欧美激情一区二区三区成人| 秋霞午夜av一区二区三区| 综合中文字幕亚洲| 久久综合资源网| 91精品国产综合久久久蜜臀粉嫩 | 欧美日韩精品福利| 成人av在线资源网站| 久久精品av麻豆的观看方式| 一区二区三区在线播放| 国产日韩欧美不卡在线| 日韩一级免费观看| 欧美亚洲一区二区在线观看| 成人午夜又粗又硬又大| 久久精品国产澳门| 丝袜美腿亚洲色图| 一区二区三区日韩精品视频| 日本一区二区三区在线不卡| 精品少妇一区二区三区日产乱码| 91黄色免费看| www.在线成人| 国产九色精品成人porny| 美国三级日本三级久久99| 午夜欧美在线一二页| 亚洲视频免费观看| 99国产欧美久久久精品| 精品制服美女久久| 亚洲小少妇裸体bbw| 国产精品国产精品国产专区不蜜 | 97se亚洲国产综合自在线观| 久久激情五月激情| 奇米色777欧美一区二区| 美女看a上一区| 偷拍日韩校园综合在线| 亚洲一区二区在线视频| 依依成人精品视频| 一区二区三区在线免费观看| 亚洲精品中文字幕在线观看| 椎名由奈av一区二区三区|