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

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

?? profile.cs

?? 剖面生成器
?? CS
?? 第 1 頁 / 共 3 頁
字號:

		private void Profile_Closing(object sender, System.ComponentModel.CancelEventArgs e)
		{
			superWorkspace.Datasources[caption].Commit();
		}
		#endregion

		#region 屬性
		public AxSuperMapLib.AxSuperWorkspace SuperWorkspace
		{
			get
			{
				return superWorkspace;
			}
			set
			{
				superWorkspace = value;
				superMap.Connect(superWorkspace.CtlHandle);
				superMap.Dock = DockStyle.Fill;
				superMap.BorderStyle = 1;		//固定單個邊框
				superMap.Appearance = 1;		//三維窗口效果
				objFill = superWorkspace.Resources.FillStyleLib;
			}
		}

		public ArrayList ArrList
		{
			get
			{
				return arrList;
			}
			set
			{
				arrList = value;
				zkCount = arrList.Count;
			}
		}

		public bool IsSum
		{
			get
			{
				return isSum;
			}
			set
			{
				isSum = value;
			}
		}

		public string ProfileName
		{
			get
			{
				return caption;
			}
			set
			{
				caption = value;
			}
		}
		

		#endregion		

		#region 主調方法DrawProfile()
		public bool DrawProfile()
		{
			if(!InitData()) return false;	//初始化數據
			if(superWorkspace.Datasources[caption] != null)
			{
				MessageBox.Show(caption + "數據源已經存在!請換名或刪除以后重新生成");
				return false;
			}
			soDataSource objDatSrc = superWorkspace.CreateDataSource(caption+".sdb",caption,seEngineType.sceSDB,true,true,false,"");
			if(objDatSrc == null)
			{
				MessageBox.Show("創建數據源錯誤!");
				return false;
			}
			objDatSrc.CoordinateUnits = seUnits.scuMeter;

			soDataset objLabelDs = objDatSrc.CreateDataset("標注",seDatasetType.scdCAD,seDatasetOption.scoDefault,null);			
			soDatasetVector objDV= (soDatasetVector)objLabelDs;
			soRecordset objLabelRs = objDV.Query("",true,null,"");
			//			this.DrawLabel(objRs);
			Ruler ruler=new Ruler();//實例化一個標尺對象
			ruler.Draw(objLabelRs,bore);//畫出兩個標尺
			superMap.Layers.AddDataset(objLabelDs,false);
			
		
			soDataset objColumnDs = objDatSrc.CreateDataset("柱狀圖",seDatasetType.scdCAD,seDatasetOption.scoDefault,null);			
			objDV= (soDatasetVector)objColumnDs;
			soFieldInfo objFI = new soFieldInfo();
			objFI.Name = "巖性";
			objFI.Type = seFieldType.scfText;
			objFI.Size = 30;
			objDV.CreateField(objFI);
			soRecordset objColumnRs = objDV.Query("",true,null,"");//柱狀圖記錄集
			
					

			soDataset objColumnLineDs = objDatSrc.CreateDataset("巖性線",seDatasetType.scdLine,seDatasetOption.scoDefault,null);			
			objDV= (soDatasetVector)objColumnLineDs;
			objDV.CreateField(objFI);
			objFI = new soFieldInfo();
			objFI.Name = "Color";
			objFI.Type = seFieldType.scfText;
			objFI.Size = 20;
			objDV.CreateField(objFI);
			soRecordset objColumnLineRs = objDV.Query("",true,null,"");	//巖性線記錄集		
			Columns columns=new Columns(this.bore);//實例化探孔類對象
			columns.Draw(objColumnRs,objColumnLineRs,objFill);//畫出所有的探孔及其標注
			superMap.Layers.AddDataset(objColumnDs,true);
			superMap.Layers.AddDataset(objColumnLineDs,true);


			

			soDataset objDs = objDatSrc.CreateDataset("剖面線",seDatasetType.scdLine,seDatasetOption.scoDefault,null);			
			objDV= (soDatasetVector)objDs;
			soRecordset objRs = objDV.Query("",true,null,"");
//			this.DrawTB(objRs);	//地面線、孔底線
			StratumLine stratumLine=new StratumLine(this.bore);//實例化地層線
			stratumLine.Draw(objRs);

			superMap.Layers.AddDataset(objDs,false);

//				
//			if(isSum)
//			{
//				superTopo.MergePseudoNodes = true;
//				superTopo.CleanIdenticalVertices = true;
//				superTopo.CleanRepeatedLines = true;
//				superTopo.MergeRedundantNodes = true;
//				superTopo.IntersectLines = false;		
//				DrawSumLine(objRs);
//				superTopo.Clean(objDs);
//			}			
			superMap.Layers["巖性線@"+caption].Snapable = true;
			objFI = null;
			superMap.Action = seAction.scaSelect;
			superMap.ViewEntire();
			return true;
		}
		#endregion			
		
		#region "初始化數據"
		private bool InitData()
		{
			if(zkCount < 2) 
			{
				MessageBox.Show("請傳入至少兩個鉆孔的數據!");
				return false;
			}
			//初始化選項對話框
			FormOption frmOption = new FormOption();
			if(frmOption.ShowDialog() == DialogResult.OK)
			{
				caption = PublicValue.caption;
				scaleX = PublicValue.scaleX;
				scaleY = PublicValue.scaleY;
				frmOption.Dispose();
			}
			else
			{
				frmOption.Dispose();
				return false;
			}			
			
			//初始化鉆孔數據
			bore = new Bore[zkCount];
			for(int i=0;i<zkCount;i++)
			{
				bore[i] = new Bore();
				bool isSuccess = bore[i].InitData(arrList[i].ToString(),isSum);
				if(!isSuccess)
				{
					return false;
				}
			}
			//計算剖面圖的鉆孔相對橫,剖面線以折線拉直,順序以選取時的順序
			for(int i=1;i<zkCount;i++)
			{
				double dX,dY,d;
				dX = bore[i].KKHZB - bore[i-1].KKHZB;
				dY = bore[i].KKZZB - bore[i-1].KKZZB;
				d = Math.Sqrt(dX*dX + dY*dY);
				bore[i].X = bore[i-1].X + (float)d;
			}		
			return true;
		}
		#endregion




		#region 拓樸成剖面圖
		private void Topo()
		{
			superMap.Layers.DisableEdit();
			superMap.Action = seAction.scaSelect;

			superTopo.MergePseudoNodes = true;
			superTopo.CleanIdenticalVertices = true;
			superTopo.CleanOvershootDangles = true;
			superTopo.CleanRepeatedLines = true;
			superTopo.ExtendDangleLines = true;
			superTopo.IntersectLines = true;
			superTopo.MergeRedundantNodes = true;
			soDataset objDs = superMap.Layers["剖面線@"+caption].Dataset;
			soRecordset objRs = ((soDatasetVector)objDs).Query("",true,null,"");
			float xCoor = -(float)space/scaleX;
			//有問題要調試  2004.5.10 9:43
//			AutoDraw autodraw=new AutoDraw(bore[0]);
//			autodraw.DrawLine(objRs,xCoor,scaleY);
//			
//			xCoor = (bore[zkCount-1].X + space)/scaleX;
//			 autodraw=new AutoDraw(bore[zkCount-1]);
//			autodraw.DrawLine(objRs,xCoor,scaleY);
			superTopo.Clean(objDs);		
			if(!superWorkspace.Datasources[caption].IsAvailableDatasetName("剖面"))
			{
				superWorkspace.Datasources[caption].DeleteDataset("剖面");				
			}
			soDataSource objDatSrc = superWorkspace.Datasources[caption];
			try
			{
				superTopo.BuildPolygons(objDs,objDatSrc,"剖面");
			}
			catch(Exception ex)
			{
				MessageBox.Show(ex.Message);
				return;
			}
		
			if(!superWorkspace.Datasources[caption].IsAvailableDatasetName("剖面圖"))
			{			
				superMap.Layers.RemoveAt("剖面圖@"+caption);
				superWorkspace.Datasources[caption].DeleteDataset("剖面圖");				
			}			
			objDs = objDatSrc.CreateDataset("剖面圖",seDatasetType.scdCAD,seDatasetOption.scoDefault,null);			
			soDatasetVector objDV= (soDatasetVector)objDs;		
			soFieldInfo objFI = new soFieldInfo();
			objFI.Name = "巖性";
			objFI.Type = seFieldType.scfText;
			objFI.Size = 30;
			objDV.CreateField(objFI);
			objRs = objDV.Query("",true,null,"");
			soDatasetVector objDvP = (soDatasetVector)objDatSrc.Datasets["剖面"];	//取出面集
			soDatasetVector objDvYXX= (soDatasetVector)objDatSrc.Datasets["巖性線"];	//取出巖性線數據集	
			soRecordset objRsP = objDvP.Query("",true,null,"");
			objRsP.MoveFirst();
			soStyle objStyle = new soStyle();
			soGeometry objGeometry;
			for(int i=0;i<objRsP.RecordCount;i++)
			{				
				objGeometry = objRsP.GetGeometry();
				objRs.AddNew(objGeometry);
			
				soRecordset objRsLine = objDvYXX.QueryEx(objGeometry,seSpatialQueryMode.scsContaining,"");
				objRsLine.MoveFirst();					
				objRs.SetFieldValue("巖性",objRsLine.GetFieldValue("巖性"));					
				objStyle.BrushStyle = objFill.FindIndex(objFill.Find(objRsLine.GetFieldValue("巖性").ToString(),1));
				objStyle.BrushColor = System.Convert.ToUInt32(System.Drawing.ColorTranslator.ToOle(Color.FromName(objRsLine.GetFieldValue("Color").ToString())));
				objGeometry.Style = objStyle;
				
				objRs.Update();
				objRsP.MoveNext();
			}		
			objDatSrc.DeleteDataset("剖面");
			superMap.Layers.RemoveAt("巖性線@"+caption);
			objDatSrc.DeleteDataset("巖性線");
			superMap.Layers.RemoveAt("剖面線@"+caption);
			objDatSrc.DeleteDataset("剖面線");
//			superMap.Layers.RemoveAt("柱狀圖@"+caption);
//			objDatSrc.DeleteDataset("柱狀圖");
			superMap.Layers.AddDataset(objDs,false);
			superMap.Layers.SetEditableLayer("剖面圖@"+caption);		
			superMap.CtlRefresh();	
			objStyle = null;
			objFI = null;

			bLegend.Enabled = true;		
			bRegionJoin.Enabled = true;		
			bTopo.Enabled = false;
			bSmoothA.Enabled = false;
			bSmoothC.Enabled = false;
			bEditLine.Enabled = false;


			this.EnableLineEdit(false);				
		}
		#endregion		
		
		#region 圖例
		private void DrawLegend(float width, float height, int rowCount)
		{
			soDatasetVector objDV= (soDatasetVector)superWorkspace.Datasources[caption].Datasets["剖面圖"];			
			soRecordset objRs = objDV.Query("",true,null,"");
			if(objRs.RecordCount < 1)	return;	//沒有記錄返回
			float top=0, left=0;
			for(int i=0;i<zkCount;i++)	//找出最深的鉆孔
			{
				if(bore[i].GetCDBG()[bore[i].GetCDBG().Length-1] < top)
				{
					top = bore[i].GetCDBG()[bore[i].GetCDBG().Length-1];
				}
			}
			top =  top/scaleY - 0.02f;	//距最深鉆孔2cm下的地方開始畫
			soTextPart objText = new soTextPart();
			soGeoText objGeoText = new soGeoText();
			soGeoRect objGeoRect = new soGeoRect();
			soGeoRegion objGeoRegion = new soGeoRegion();
			objGeoText.TextStyle.FontHeight = objGeoText.TextStyle.FontWidth = scaleT;
//			objGeoRect.Width = width;
//			objGeoRect.Height = height;
			int[] brushIndex = new int[objRs.RecordCount];
			objRs.MoveFirst();
			for(int i=0;i<objRs.RecordCount;i++)
			{
				brushIndex[i] = objRs.GetGeometry().Style.BrushStyle;
				objRs.MoveNext();
			}
			for(int i=0;i<objRs.RecordCount-1;i++)
			{
				if(brushIndex[i]>0)
				{
					for(int j=i+1;j<objRs.RecordCount;j++)
					{
						if(brushIndex[j] == brushIndex[i])
							brushIndex[j] = -2;
					}
				}
			}			
			
			objDV= (soDatasetVector)superWorkspace.Datasources[caption].Datasets["標注"];			
			soRecordset objRsTarget = objDV.Query("",true,null,"");
			int count = 0;
			objRs.MoveFirst();
			for(int i=0;i<objRs.RecordCount;i++)
			{
				if(brushIndex[i]>0)
				{
					objGeoRect.Left = left;
					objGeoRect.Top = top;
					objGeoRect.Right = left + width;
					objGeoRect.Bottom = top - height;
					objGeoRegion = objGeoRect.ConvertToRegion();
					objGeoRegion.Style = objRs.GetGeometry().Style;
					objRsTarget.AddNew((soGeometry)objGeoRegion);
					objRsTarget.Update();
					objText.x = left + width;
					objText.y = top - height * 0.4;
					objText.Text = objFill.get_StyleItemName(objFill.FindID(objGeoRegion.Style.BrushStyle));
					objGeoText.AddPart(objText);
					left += width + 20 * scaleT;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品国产a| 日本乱人伦aⅴ精品| 91视频免费播放| 精品理论电影在线| 午夜欧美大尺度福利影院在线看| 国产精品小仙女| 91麻豆精品国产91久久久更新时间| 国产午夜亚洲精品理论片色戒| 一区二区三区在线不卡| 国产99久久久久| 精品福利二区三区| 蜜臀国产一区二区三区在线播放| 99久久精品免费看| 中文字幕成人av| 国产精品2024| 国产午夜亚洲精品理论片色戒 | 欧美不卡一区二区三区四区| 亚洲精品免费播放| 91丨porny丨国产入口| 国产喷白浆一区二区三区| 狠狠色丁香久久婷婷综| 在线综合视频播放| 免费在线看成人av| 日韩一二三四区| 免费不卡在线观看| 欧美一区二区在线免费观看| 日韩国产欧美在线播放| 欧美精品日韩综合在线| 日本中文字幕不卡| 欧美大胆人体bbbb| 国产一区二区三区四区五区入口 | 欧美性极品少妇| 亚洲电影一级黄| 欧美日韩精品一区视频| 亚洲电影中文字幕在线观看| 91福利社在线观看| 亚洲大片一区二区三区| 3atv在线一区二区三区| 免费不卡在线视频| 久久精品网站免费观看| 成人性生交大片免费看视频在线| 国产精品人成在线观看免费| eeuss鲁一区二区三区| 中文字幕一区二区三区色视频| 99视频一区二区| 亚洲中国最大av网站| 91精品国产综合久久久蜜臀粉嫩| 日韩激情视频在线观看| 久久综合色鬼综合色| 成人黄色在线看| 亚洲一区二区在线视频| 日韩欧美成人激情| 91亚洲国产成人精品一区二区三 | 777xxx欧美| 激情综合网天天干| 国产精品拍天天在线| 99国产精品视频免费观看| 日韩一区欧美二区| 久久天天做天天爱综合色| 国产高清无密码一区二区三区| 亚洲女与黑人做爰| 欧美一区二区三区在线看| 风间由美一区二区三区在线观看| 亚洲精品国产无天堂网2021| 欧美日韩一级片在线观看| 久久国产免费看| 自拍偷拍欧美精品| 日韩精品中午字幕| 色综合久久88色综合天天免费| 午夜久久久久久久久久一区二区| 日韩精品一区在线观看| 一本久久综合亚洲鲁鲁五月天| 樱花草国产18久久久久| 日韩亚洲欧美中文三级| eeuss鲁片一区二区三区| 日本伊人午夜精品| 最新高清无码专区| www一区二区| 欧美天堂亚洲电影院在线播放| 国产一区二区三区电影在线观看| 亚洲综合色网站| 久久久久国产精品人| 在线播放/欧美激情| 国产中文字幕一区| 亚洲成人一区二区在线观看| 中文字幕欧美激情| 日韩精品一区二区三区中文精品| av亚洲产国偷v产偷v自拍| 热久久一区二区| 午夜电影一区二区三区| 中文字幕av一区 二区| 日韩欧美一级特黄在线播放| 色老汉av一区二区三区| 国产一区二区三区国产| 久久黄色级2电影| 日本伊人午夜精品| 亚洲大片一区二区三区| 亚洲制服丝袜av| 亚洲人成7777| 亚洲欧美经典视频| 国产精品乱码妇女bbbb| 久久久精品天堂| 久久久www免费人成精品| 久久嫩草精品久久久久| 精品国产三级电影在线观看| 欧美一级二级在线观看| 91精品久久久久久久99蜜桃 | 337p粉嫩大胆色噜噜噜噜亚洲 | 中文字幕日韩一区| 中文字幕一区二区三区不卡| 中文一区二区在线观看| 欧美国产精品一区二区三区| 日本一区二区三区在线不卡| 国产午夜精品久久久久久免费视 | 3atv在线一区二区三区| 69堂成人精品免费视频| 欧美日韩高清一区二区三区| 欧美一区二区三区人| 欧美视频自拍偷拍| 日韩一区二区免费高清| 日韩美女一区二区三区四区| 久久综合资源网| 国产精品萝li| 亚洲国产视频一区二区| 免费国产亚洲视频| 国产在线播放一区二区三区 | 美女国产一区二区| av亚洲精华国产精华精华| 菠萝蜜视频在线观看一区| 一本一道综合狠狠老| 欧美日韩免费高清一区色橹橹 | 欧美伊人久久久久久久久影院| 欧美做爰猛烈大尺度电影无法无天| 在线日韩av片| 欧美一区二区三区视频在线观看| 精品国产一区二区三区久久久蜜月| 久久精品在线观看| 亚洲综合久久久| 蜜桃视频一区二区三区| 成人午夜又粗又硬又大| 91国产精品成人| 日韩美一区二区三区| 国产精品国产三级国产aⅴ原创 | 欧美撒尿777hd撒尿| 欧美大度的电影原声| 中文字幕在线不卡一区二区三区| 亚洲一区二区三区视频在线播放 | 91黄色免费看| 久久中文娱乐网| 亚洲一区二三区| 国产精品66部| 欧美日韩国产一级片| 久久毛片高清国产| 午夜视频在线观看一区二区| 国产精品中文字幕日韩精品| 欧洲另类一二三四区| 久久嫩草精品久久久精品| 亚洲成人免费影院| 成人黄色国产精品网站大全在线免费观看| 欧美日韩一区精品| 国产精品日韩成人| 国产一区二区三区精品视频| 欧洲精品一区二区| 国产精品人成在线观看免费| 免费在线观看不卡| 色诱视频网站一区| 中文字幕欧美三区| 另类欧美日韩国产在线| 欧美性猛片xxxx免费看久爱| 欧美国产精品一区| 国模套图日韩精品一区二区| 欧美午夜宅男影院| 亚洲激情中文1区| 成人黄色小视频| 国产视频视频一区| 久久电影网电视剧免费观看| 欧美在线观看视频一区二区| 亚洲国产精品国自产拍av| 国产做a爰片久久毛片| 欧美一级理论片| 日韩影院免费视频| 欧美喷水一区二区| 亚洲精品高清在线| 97精品电影院| 国产精品乱码妇女bbbb| 成人一区二区三区| 欧美激情一区二区三区四区| 国产一区二区精品久久91| 亚洲精品一区二区三区四区高清| 亚洲电影中文字幕在线观看| 91国在线观看| 亚洲动漫第一页| 欧美日韩一级片网站| 亚洲成av人片在线| 3d成人动漫网站| 乱一区二区av| 久久精品亚洲一区二区三区浴池| 久久se精品一区精品二区| 欧美不卡视频一区| 国产尤物一区二区在线|