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

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

?? drawdoc.cpp

?? 在vc下編寫的一個開發地理信息系統的程序
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
					GetLine(nn)->Save(file1,1);
			}
		}
		if(n_PLineNumb>0)
		{
			nn=m_PLineArray.GetUpperBound()+1;
			while(nn--)
			{
				if(m_PLineArray.GetAt(nn))
					GetPLine(nn)->Save(file1,1);
			}
		}
		if(n_CircleNumb>0)
		{
			nn=m_CircleArray.GetUpperBound()+1;
			while(nn--)
			{
				if(m_CircleArray.GetAt(nn))
					GetCircle(nn)->Save(file1,1);
			}
		}
		if(n_ArcNumb>0)
		{
			nn=m_ArcArray.GetUpperBound()+1;
			while(nn--)
			{
				if(m_ArcArray.GetAt(nn))
					GetArc(nn)->Save(file1,1);
			}
		}
		if(n_TextNumb>0)
		{
			nn=m_TextArray.GetUpperBound();
			while(nn--)
			{
				if(m_TextArray.GetAt(nn))
					GetText(nn)->Save(file1,1);
			}
		}
	}
	else
	{
		file1->Read((unsigned char *)&n_LineNumb,sizeof(int));
		file1->Read((unsigned char *)&n_PLineNumb,sizeof(int));
		file1->Read((unsigned char *)&n_CircleNumb,sizeof(int));
		file1->Read((unsigned char *)&n_ArcNumb,sizeof(int));
		file1->Read((unsigned char *)&n_TextNumb,sizeof(int));
		for(int i=0;i<n_LineNumb;i++)
		{
			CLine* p_Line=new CLine();
			p_Line->Save(file1,0);
			m_LineArray.Add(p_Line);
		}

		for(i=0;i<n_PLineNumb;i++)
		{
			CPline* p_PLine=new CPline();
			p_PLine->Save(file1,0);
			m_PLineArray.Add(p_PLine);
		}
		for(i=0;i<n_CircleNumb;i++)
		{
			CCircle* p_Circle=new CCircle();
			p_Circle->Save(file1,0);
			m_CircleArray.Add(p_Circle);
		}
		for(i=0;i<n_ArcNumb;i++)
		{
			CArc* p_Arc=new CArc();
			p_Arc->Save(file1,0);
			m_ArcArray.Add(p_Arc);
		}
		for(i=0;i<n_TextNumb;i++)
		{
			CText* p_Text=new CText();
			p_Text->Save(file1,0);
			m_TextArray.Add(p_Text);
		}
	
		// TODO: add loading code here
	}
	SetModifiedFlag(0);	
	n_CurUnIndex=0;
	COleDocument::Serialize(ar);
}


CLine* CDrawDoc::AddLine(short ColorPen,short ColorBrush,short LineWide,short LineType,short Layer,int id_only,float X1,float Y1,float X2,float Y2)
{
	CLine* p_Line=new CLine(ColorPen,ColorBrush,LineWide,LineType,Layer,id_only,0,X1,Y1,X2,Y2);
	m_LineArray.Add(p_Line);
	return p_Line;
}

CLine* CDrawDoc::AddLine()
{
	CLine* p_Line=new CLine();
	m_LineArray.Add(p_Line);
	return p_Line;
}

CLine * CDrawDoc::GetLine(int Index)
{
	if(Index<0||Index>m_LineArray.GetUpperBound())
		return 0;
	return m_LineArray.GetAt(Index);

}

int CDrawDoc::GetNumbLines()
{
	return m_LineArray.GetSize();
}

CPline* CDrawDoc::AddPLine(short ColorPen,short ColorBrush,short LineWide,short LineType,short Layer,int id_only,int Numble,PointStruct* PointList,BOOL Fill)
{
	CPline* p_Pline=new CPline(ColorPen,ColorBrush,LineWide,LineType,Layer,id_only,0,Numble,PointList,Fill);
	m_PLineArray.Add(p_Pline);
	return p_Pline;
}

CPline* CDrawDoc::AddPLine()
{
	CPline* p_Pline=new CPline();
	m_PLineArray.Add(p_Pline);
	return p_Pline;
}

CPline* CDrawDoc::GetPLine(int Index)
{
	if(Index<0||Index>m_PLineArray.GetUpperBound())
		return 0;
	return m_PLineArray.GetAt(Index);
}

int CDrawDoc::GetNumbPLines()
{
	return m_PLineArray.GetSize();
}

CCircle* CDrawDoc::AddCircle(short ColorPen,short ColorBrush,short LineWide,short LineType,short Layer,int id_only,float CircleX,float CircleY,float CircleR,BOOL Fill)
{	
	CCircle* p_Circle=new CCircle(ColorPen,ColorBrush,LineWide,LineType,Layer,id_only,0,CircleX,CircleY,CircleR,Fill);
	m_CircleArray.Add(p_Circle);
	return p_Circle;
}

CCircle* CDrawDoc::AddCircle()
{	
	CCircle* p_Circle=new CCircle();
	m_CircleArray.Add(p_Circle);
	return p_Circle;
}

CCircle* CDrawDoc::GetCircle(int Index)
{
	if(Index<0||Index>m_CircleArray.GetUpperBound())
		return 0;
	return m_CircleArray.GetAt(Index);
}

int CDrawDoc::GetNumbCircles()
{
	return m_CircleArray.GetSize();
}

CArc* CDrawDoc::AddArc(short ColorPen,short ColorBrush,short LineWide,short LineType,short Layer,int id_only,float CircleX,float CircleY,float CircleR,BOOL Fill,float Angle1,float Angle2)	
{
	CArc* p_Arc=new CArc(ColorPen,ColorBrush,LineWide,LineType,Layer,id_only,0,CircleX,CircleY,CircleR,Fill,Angle1,Angle2);
	m_ArcArray.Add(p_Arc);
	return p_Arc;
}

CArc* CDrawDoc::AddArc()
{
	CArc* p_Arc=new CArc();
	m_ArcArray.Add(p_Arc);
	return p_Arc;
}

int CDrawDoc::GetNumbArcs()
{
	return m_ArcArray.GetSize();
}

CText* CDrawDoc::AddText(short ColorPen,short ColorBrush,short LineWide,short LineType,short Layer,int id_only,float StartX,float StartY,float Angle1,float Angle2,float TextHeight,float TextWide,float OffWide,unsigned char TextFont,int TextLong,CString Text)
{
	CText* p_Text=new CText(ColorPen,ColorBrush,LineWide,LineType,Layer,id_only,0,StartX,StartY,Angle1,Angle2,TextHeight,TextWide,OffWide,0,Text);
	m_TextArray.Add(p_Text);
	return p_Text;
}

CText* CDrawDoc::AddText()
{
	CText* p_Text=new CText();
	m_TextArray.Add(p_Text);
	return p_Text;
}

CText* CDrawDoc::GetText(int Index)
{
	if(Index<0||Index>m_TextArray.GetUpperBound())
		return 0;
	return m_TextArray.GetAt(Index);
}

int CDrawDoc::GetNumbTexts()
{
	return m_TextArray.GetSize();
}

//在歷史屏幕中增加一個屏幕,以供屏幕回溯操作
//(StartX,StartY)屏幕起點,blc為屏幕的比例尺
void CDrawDoc::AddScreen(float StartX,float StartY,float blc)
{
	int i;
	if(m_CurrentScreen==m_MaxScreen)//如果當前屏幕在50屏上,即沒有數組空間再存信息
	{
		//將數組做堆式滾動將第二屏去掉(screenxy[0]中存儲的是首屏信息,操作時不改變)
		for(i=1;i<m_MaxScreen-1;i++)
			m_Screen[i]=m_Screen[i+1];
	}
	else    //如果不是最大屏,屏幕記錄號增加1
		m_CurrentScreen++;
	//記錄下本屏幕的參數
	m_Screen[m_CurrentScreen].sx=StartX;
	m_Screen[m_CurrentScreen].sy=StartY;
	m_Screen[m_CurrentScreen].blc=blc;
}

/////////////////////////////////////////////////////////////////////////////
// CDrawDoc diagnostics

#ifdef _DEBUG
void CDrawDoc::AssertValid() const
{
	COleDocument::AssertValid();
}

void CDrawDoc::Dump(CDumpContext& dc) const
{
	COleDocument::Dump(dc);
}
#endif //_DEBUG

COLORREF CGraphPara::GetColor(int n)
{
	return m_ColorList[n]; //返回第n種顏色的實際值
}

BOOL CGraphPara::GetDisplayStatue(int n)
{
	return m_LayerList[n].b_Display;
}

//計算點(x1,y1)與點(x2,y2)間的距離
float CDraw::CalDisp(float x1,float y1,float x2,float y2)
{
	return (float)sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}

//作用:計算點(xx,yy)到線段(x1,y1)(x2,y2)的距離,返回計算的距離值
float CDraw::PointLine(float xx,float yy,float x1,float y1,float x2,float y2)
{
	float a,b,c,ang1,ang2,ang;
    //計算三條邊的距離
    a=CalDisp(x1,y1,xx,yy);if(a==0.0)return 0.0;
    b=CalDisp(x2,y2,xx,yy);if(b==0.0)return 0.0;
    c=CalDisp(x1,y1,x2,y2);
    //如果(x1,y1)和(x2,y2)是一個點直接返回距離
    if(c==0.0) return a;
	if(a<b) //如果(xx,yy)的點(x1,y1)這條邊較短
	{
		if(y1==y2)
		{
			if(x1<x2)
				ang1=0;
			else
				ang1=(float)pi;
		}
		else
		{
			ang1=(float)acos((x2-x1)/c);
			if(y1>y2)ang1=(float)pi*2-ang1;  //直線(x1,y1)-(x2,y2)的弧度
		}
		ang2=(float)acos((xx-x1)/a);
		if(y1>yy)ang2=(float)pi*2-ang2;  //直線(x1,y1)-(xx,yy)的弧度
		ang=ang2-ang1;
		if(ang<0)ang=-ang;
		if(ang>pi) ang=(float)pi*2-ang;  //交角的大小
		if(ang>pi/2) return a;    //如果為鈍角,直接返回距離
		else 
			return (a*(float)sin(ang)); //否則返回計算得到的距離 
	}
	else //如果(xx,yy)的點(x2,y2)這條邊較短
	{
		if(y1==y2)
		{
			if(x1<x2)
				ang1=(float)pi;
			else
				ang1=0;
		}
		else
		{
			ang1=(float)acos((x1-x2)/c);     //直線(x2,y2)-(x1,y1)的斜率的弧度
			if(y2>y1)ang1=(float)pi*2-ang1;
		}
		ang2=(float)acos((xx-x2)/b);     //直線(x2,x1)-(xx,yy)的斜率的弧度
		if(y2>yy)ang2=(float)pi*2-ang2;
		ang=ang2-ang1;
		if(ang<0) ang=-ang;
		if(ang>pi) ang=(float)pi*2-ang;  //交角的大小 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产国产综合| 国产高清视频一区| 国产资源在线一区| 色综合久久久久久久久| 国产色产综合产在线视频| 亚洲亚洲精品在线观看| 欧美猛男超大videosgay| 国产精品视频观看| 狠狠色2019综合网| 日韩视频123| 亚洲成人av一区二区| 91视视频在线观看入口直接观看www| 日韩欧美久久久| 五月综合激情网| 在线一区二区视频| 亚洲欧美另类小说视频| 不卡一区中文字幕| 欧美国产激情一区二区三区蜜月 | 在线观看91av| 亚洲一级不卡视频| 日本电影欧美片| 亚洲三级久久久| 99视频在线观看一区三区| 欧美国产精品一区二区| 国产一区二区剧情av在线| 91精品国产免费| 午夜av区久久| 欧美精品v国产精品v日韩精品| 亚洲香肠在线观看| 欧美午夜精品久久久久久超碰| 99精品久久只有精品| 亚洲国产成人在线| 国产aⅴ精品一区二区三区色成熟| 久久久久久97三级| 黑人巨大精品欧美一区| 久久色中文字幕| 高清av一区二区| 1024成人网| 色欧美日韩亚洲| 午夜欧美2019年伦理| 欧美一区二区三区免费大片 | 久久精品在线观看| 国产成人av影院| 成人欧美一区二区三区白人| 成人免费毛片高清视频| 1024国产精品| 欧美精三区欧美精三区| 美女一区二区在线观看| 国产亚洲综合在线| 不卡的电影网站| 亚洲国产综合在线| 日韩美女视频一区二区在线观看| 国产一区二区0| 亚洲人成精品久久久久久| 欧美系列亚洲系列| 国内精品国产成人国产三级粉色 | 成人黄页毛片网站| 一区二区三区四区在线免费观看| 欧美三级日韩在线| 久久国产视频网| 国产精品国产精品国产专区不蜜| 欧洲精品一区二区三区在线观看| 免费高清在线一区| 中文字幕一区二区日韩精品绯色| 精品视频资源站| 国产一区二区免费视频| 亚洲一区在线免费观看| 亚洲精品免费在线观看| 日韩视频一区二区三区| 成人性色生活片免费看爆迷你毛片| 亚洲美女免费视频| 久久亚洲一区二区三区四区| 色综合天天综合网国产成人综合天| 日日摸夜夜添夜夜添亚洲女人| 久久精子c满五个校花| 欧美色爱综合网| 成人a区在线观看| 麻豆成人免费电影| 亚洲男人都懂的| 久久精品欧美日韩精品 | 日韩精品乱码av一区二区| 国产免费久久精品| 欧美电影免费观看高清完整版在线观看 | 国产精品久久久久永久免费观看| 欧美性色黄大片| 丁香六月综合激情| 捆绑调教美女网站视频一区| 亚洲男同性视频| 一区在线观看视频| 国产嫩草影院久久久久| 26uuu成人网一区二区三区| 欧美日韩视频在线一区二区| 不卡的电影网站| 懂色av中文字幕一区二区三区| 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产精品美女久久福利网站| 日韩三级视频在线看| 欧洲av在线精品| av午夜精品一区二区三区| 国产精品一区免费在线观看| 麻豆久久一区二区| 亚洲国产成人高清精品| 一区二区不卡在线视频 午夜欧美不卡在 | 懂色中文一区二区在线播放| 久久99国产精品久久99| 裸体在线国模精品偷拍| 日韩高清电影一区| 日本亚洲三级在线| 免费在线观看精品| 精品一区二区三区日韩| 久久99最新地址| 男女男精品视频| 黑人巨大精品欧美黑白配亚洲| 美女看a上一区| 久久国产乱子精品免费女| 免费xxxx性欧美18vr| 久久99久久99| 国内精品伊人久久久久av一坑| 国产呦萝稀缺另类资源| 国产精品一二三区| 国产suv精品一区二区883| 国产suv精品一区二区6| av亚洲精华国产精华精华| 91网上在线视频| 欧美亚洲高清一区二区三区不卡| 欧美网站大全在线观看| 在线不卡免费欧美| 欧美精品一区二区高清在线观看| 久久久久久久综合| 中文字幕一区二区三区不卡在线 | 国产精品无码永久免费888| 国产精品对白交换视频| 国产又粗又猛又爽又黄91精品| 国产精品亚洲专一区二区三区 | 亚洲精品免费在线观看| 亚洲va韩国va欧美va| 麻豆成人免费电影| 国产91色综合久久免费分享| 色呦呦日韩精品| 欧美一区午夜精品| 中文字幕av免费专区久久| 一卡二卡欧美日韩| 精品一区二区三区久久久| thepron国产精品| 欧美久久久影院| 中文av一区特黄| 丝袜美腿亚洲一区二区图片| 国产suv一区二区三区88区| 欧美视频在线一区| 久久美女高清视频| 一区二区视频在线| 美女久久久精品| 91官网在线观看| 久久亚洲一级片| 亚洲一区中文日韩| 高清国产一区二区| 欧美一区二区高清| 亚洲欧美一区二区视频| 久久精品国产精品亚洲精品| 91免费国产在线| 精品国产免费人成电影在线观看四季| 国产精品麻豆视频| 久久爱www久久做| 91黄色小视频| 精品va天堂亚洲国产| 五月激情综合网| av欧美精品.com| 欧美变态口味重另类| 亚洲视频一区二区在线| 国产尤物一区二区| 337p亚洲精品色噜噜噜| 一区二区三区四区高清精品免费观看| 韩国欧美国产1区| 欧美一区二区不卡视频| 一区二区三区高清不卡| kk眼镜猥琐国模调教系列一区二区| 日韩女优制服丝袜电影| 性做久久久久久| 在线亚洲+欧美+日本专区| 国产日韩欧美一区二区三区乱码| 人人精品人人爱| 欧美精品亚洲二区| 图片区小说区区亚洲影院| 色哟哟国产精品| 亚洲另类春色国产| 色综合色综合色综合色综合色综合 | 亚洲乱码中文字幕| 99精品视频在线观看免费| 国产免费久久精品| 成人在线视频一区| 日本一区二区三区电影| 国产福利精品导航| 日本一区二区三区免费乱视频| 国产精品亚洲人在线观看| 久久综合成人精品亚洲另类欧美 | 久久这里只有精品首页| 久久99精品久久久久婷婷| 日韩精品影音先锋| 激情综合网激情| 国产日韩欧美综合在线|