/// <summary> /// 生成6号区 /// </summary> /// <returns></returns> private PlaceXmlModel.Area GenerateArea6(IEnumerable <Point> originalPoints, List <Point> belowOffsetPoints) { PlaceXmlModel.Area area = new PlaceXmlModel.Area(); area.Points = new List <PlaceXmlModel.Point>(); AddPoint2Area(area, originalPoints.ElementAt(3)); AddPoint2Area(area, originalPoints.ElementAt(2)); AddPoint2Area(area, belowOffsetPoints[0]); AddPoint2Area(area, belowOffsetPoints[1]); area.Flag = "2010107"; area.Note = "area6"; return(area); }
/// <summary> /// 生成3号区 /// </summary> /// <returns></returns> private PlaceXmlModel.Area GenerateArea3(IEnumerable <Point> originalPoints) { PlaceXmlModel.Area area = new PlaceXmlModel.Area(); area.Points = new List <PlaceXmlModel.Point>(); AddPoint2Area(area, originalPoints.ElementAt(6)); AddPoint2Area(area, originalPoints.ElementAt(3)); AddPoint2Area(area, originalPoints.ElementAt(4)); AddPoint2Area(area, originalPoints.ElementAt(5)); area.Flag = "2010104"; area.Note = "area3"; return(area); }
/// <summary> /// 生成1号区 /// </summary> /// <returns></returns> private PlaceXmlModel.Area GenerateArea1(IEnumerable <Point> originalPoints) { PlaceXmlModel.Area area = new PlaceXmlModel.Area(); area.Points = new List <PlaceXmlModel.Point>(); AddPoint2Area(area, originalPoints.ElementAt(0)); AddPoint2Area(area, originalPoints.ElementAt(1)); AddPoint2Area(area, originalPoints.ElementAt(2)); AddPoint2Area(area, originalPoints.ElementAt(7)); area.Flag = "2010102"; area.Note = "area1"; return(area); }
/// <summary> /// 生成1号区 /// </summary> /// <param name="originalPoints"></param> /// <returns></returns> private PlaceXmlModel.Area GenerateArea1(IEnumerable <Point> originalPoints) { PlaceXmlModel.Area area = new PlaceXmlModel.Area(); area.Points = new List <PlaceXmlModel.Point>(); foreach (var p in originalPoints) { AddPoint2Area(area, p); } area.Flag = "2060102"; area.Note = "area1"; return(area); }
/// <summary> /// 生成主区域 /// </summary> /// <param name="originalPoints"></param> /// <returns></returns> private PlaceXmlModel.Area GenerateMainArea(IEnumerable <Point> originalPoints) { PlaceXmlModel.Area area = new PlaceXmlModel.Area(); area.Points = new List <PlaceXmlModel.Point>(); AddPoint2Area(area, originalPoints.ElementAt(0)); AddPoint2Area(area, area5AboveOffsetPoints[0]); AddPoint2Area(area, area5AboveOffsetPoints[1]); AddPoint2Area(area, area46BelowOffsetPoints[0]); AddPoint2Area(area, area46BelowOffsetPoints[2]); AddPoint2Area(area, area46BelowOffsetPoints[3]); AddPoint2Area(area, originalPoints.ElementAt(9)); area.Flag = "2040100"; area.Note = "main"; return(area); }
/// <summary> /// 生成4号区 /// </summary> /// <param name="originalPoints"></param> /// <returns></returns> private PlaceXmlModel.Area GenerateArea4(IEnumerable <Point> originalPoints) { PlaceXmlModel.Area area = new PlaceXmlModel.Area(); area.Points = new List <PlaceXmlModel.Point>(); AddPoint2Area(area, area46BelowOffsetPoints[4]); AddPoint2Area(area, originalPoints.ElementAt(8)); AddPoint2Area(area, originalPoints.ElementAt(7)); AddPoint2Area(area, originalPoints.ElementAt(6)); AddPoint2Area(area, originalPoints.ElementAt(5)); AddPoint2Area(area, area46BelowOffsetPoints[1]); AddPoint2Area(area, area46BelowOffsetPoints[2]); AddPoint2Area(area, area46BelowOffsetPoints[3]); area.Flag = "2040105"; area.Note = "area4"; return(area); }
/// <summary> /// 生成0号区 /// </summary> /// <returns></returns> private PlaceXmlModel.Area GenerateArea0(IEnumerable <Point> originalPoints) { double offsetDis = 2;//0号区偏移距离 List <Point> offsetPoints = MathEx.TranslatePoints(new List <Point> { originalPoints.ElementAt(7), originalPoints.ElementAt(0) }, offsetDis); area0LeftOffetPoints = offsetPoints; PlaceXmlModel.Area area = new PlaceXmlModel.Area(); area.Points = new List <PlaceXmlModel.Point>(); AddPoint2Area(area, offsetPoints[1]); AddPoint2Area(area, originalPoints.ElementAt(0)); AddPoint2Area(area, originalPoints.ElementAt(7)); AddPoint2Area(area, offsetPoints[0]); area.Flag = "2010101"; area.Note = "area0"; return(area); }
/// <summary> /// 生成5号区 /// </summary> /// <param name="originalPoints"></param> /// <returns></returns> private PlaceXmlModel.Area GenerateArea5(IEnumerable <Point> originalPoints) { double offsetDis = 0.3;//7号区偏移距离 List <Point> offsetPoints = MathEx.TranslatePoints(new List <Point> { originalPoints.ElementAt(1), originalPoints.ElementAt(3) }, offsetDis); area5AboveOffsetPoints = offsetPoints; PlaceXmlModel.Area area = new PlaceXmlModel.Area(); area.Points = new List <PlaceXmlModel.Point>(); AddPoint2Area(area, offsetPoints[0]); AddPoint2Area(area, offsetPoints[1]); AddPoint2Area(area, originalPoints.ElementAt(3)); AddPoint2Area(area, originalPoints.ElementAt(1)); area.Flag = "2040106"; area.Note = "area5"; return(area); }
/// <summary> /// 生成主区域 /// </summary> /// <param name="originalPoints"></param> /// <returns></returns> private PlaceXmlModel.Area GenerateMainArea() { PlaceXmlModel.Area area = new PlaceXmlModel.Area(); area.Points = new List <PlaceXmlModel.Point>(); AddPoint2Area(area, area0BelowffsetPoints[1]); foreach (var p in area3LeftOffetPoints) { AddPoint2Area(area, p); } AddPoint2Area(area, area2AboveOffsetPoints[0]); AddPoint2Area(area, area2AboveOffsetPoints[1]); foreach (var p in area4RightOffetPoints) { AddPoint2Area(area, p); } AddPoint2Area(area, area0BelowffsetPoints[0]); area.Flag = "2060100"; area.Note = "main"; return(area); }
/// <summary> /// 生成2号区 /// </summary> /// <returns></returns> private PlaceXmlModel.Area GenerateArea2(IEnumerable <Point> originalPoints) { double offsetDis = 2; List <Point> offsetPoints = MathEx.TranslatePoints(new List <Point> { firstSideOriginalPoints.Last(), secondSideOriginalPoints[0] }, offsetDis); area2AboveOffsetPoints = offsetPoints; PlaceXmlModel.Area area = new PlaceXmlModel.Area(); area.Points = new List <PlaceXmlModel.Point>(); AddPoint2Area(area, offsetPoints[0]); AddPoint2Area(area, offsetPoints[1]); AddPoint2Area(area, secondSideOriginalPoints[0]); AddPoint2Area(area, firstSideOriginalPoints.Last()); area.Flag = "2060103"; area.Note = "area2"; return(area); }
/// <summary> /// 生成主区域 /// </summary> /// <param name="originalPoints"></param> /// <returns></returns> private PlaceXmlModel.Area GenerateMainArea() { PlaceXmlModel.Area area = new PlaceXmlModel.Area(); area.Points = new List <PlaceXmlModel.Point>(); AddPoint2Area(area, area7AboveOffsetPoints[0]); AddPoint2Area(area, area7AboveOffsetPoints[1]); AddPoint2Area(area, area2RightOffetPoints[0]); AddPoint2Area(area, area2RightOffetPoints[1]); AddPoint2Area(area, area456belowOffsetPoints[0]); AddPoint2Area(area, area456belowOffsetPoints[1]); AddPoint2Area(area, area456belowOffsetPoints[2]); AddPoint2Area(area, area456belowOffsetPoints[3]); AddPoint2Area(area, area456belowOffsetPoints[4]); AddPoint2Area(area, area456belowOffsetPoints[5]); AddPoint2Area(area, area0LeftOffetPoints[0]); AddPoint2Area(area, area0LeftOffetPoints[1]); area.Flag = "2010100"; area.Note = "main"; return(area); }
/// <summary> /// 生成4号区 /// </summary> /// <param name="originalPoints"></param> /// <returns></returns> private PlaceXmlModel.Area GenerateArea4(IEnumerable <Point> originalPoints) { double offsetDis = 0.3; List <Point> offsetPoints = MathEx.TranslatePoints(secondSideOriginalPoints, offsetDis); area4RightOffetPoints = offsetPoints; PlaceXmlModel.Area area = new PlaceXmlModel.Area(); area.Points = new List <PlaceXmlModel.Point>(); foreach (var p in secondSideOriginalPoints) { AddPoint2Area(area, p); } for (int i = offsetPoints.Count - 1; i >= 0; i--) { AddPoint2Area(area, offsetPoints[i]); } area.Flag = "2060105"; area.Note = "area4"; return(area); }
public PlaceXmlModel.Item Generate(IEnumerable <Point> originalPoints) { if (!CheckPointCount(originalPoints.Count())) { return(null); } PlaceXmlModel.Item examItem = new PlaceXmlModel.Item(); examItem.SubAreas = new PlaceXmlModel.SunArea(); examItem.SubAreas.Areas = new List <PlaceXmlModel.Area>(); //0号区 List <Point> offsetPointsTmp = MathEx.TranslatePoints(new List <Point> { originalPoints.ElementAt(5), originalPoints.ElementAt(0) }, area0OffsetDis); areasPoints[0] = new List <Point> { originalPoints.ElementAt(0), originalPoints.ElementAt(5), offsetPointsTmp[0], offsetPointsTmp[1] }; //1号区 areasPoints[1] = new List <Point>(); foreach (var p in originalPoints) { areasPoints[1].Add(p); } //2号区 offsetPointsTmp = MathEx.TranslatePoints(new List <Point> { originalPoints.ElementAt(2), originalPoints.ElementAt(3) }, area2OffsetDis); areasPoints[2] = new List <Point> { offsetPointsTmp [0], offsetPointsTmp [1], originalPoints.ElementAt(3), originalPoints.ElementAt(2) }; //3号区 offsetPointsTmp = MathEx.TranslatePoints(new List <Point> { originalPoints.ElementAt(0), originalPoints.ElementAt(1), originalPoints.ElementAt(2) }, area3OffsetDis); areasPoints[3] = new List <Point> { originalPoints.ElementAt(0), originalPoints.ElementAt(1), originalPoints.ElementAt(2), offsetPointsTmp[2], offsetPointsTmp[1], offsetPointsTmp[0] }; //4号区 offsetPointsTmp = MathEx.TranslatePoints(new List <Point> { originalPoints.ElementAt(3), originalPoints.ElementAt(4), originalPoints.ElementAt(5) }, area4OffsetDis); areasPoints[4] = new List <Point> { originalPoints.ElementAt(3), originalPoints.ElementAt(4), originalPoints.ElementAt(5), offsetPointsTmp[2], offsetPointsTmp[1], offsetPointsTmp[0] }; mainAreaPoints = new List <Point> { areasPoints[0][3], areasPoints[3][5], areasPoints[3][4], areasPoints[3][3], areasPoints[2][0], areasPoints[2][1], areasPoints[4][5], areasPoints[4][4], areasPoints[4][3], areasPoints[0][2] }; int i = 1; foreach (var points in areasPoints) { if (points == null) { continue; } var area = new PlaceXmlModel.Area(); area.Points = new List <PlaceXmlModel.Point>(); foreach (var p in points) { AddPoint2Area(area, p); } area.Flag = "207010" + i; area.Note = "area" + (i - 1); examItem.SubAreas.Areas.Add(area); i++; } var areaMain = new PlaceXmlModel.Area(); areaMain.Points = new List <PlaceXmlModel.Point>(); foreach (var p in mainAreaPoints) { AddPoint2Area(areaMain, p); } areaMain.Flag = "2070100"; areaMain.Note = "main"; examItem.Area = areaMain; examItem.Name = "直角转弯"; examItem.Flag = "20701"; examItem.PlaceFlag = "207"; examItem.Index = "001"; examItem.Cls = "ZJ"; examItem.HaveSensor = "false"; examItem.StartMode = "0"; return(examItem); }
private void AddPoint2Area(PlaceXmlModel.Area area, Point p) { p.X = Math.Round(p.X, 3); p.Y = Math.Round(p.Y, 3); area.Points.Add(new PlaceXmlModel.Point(p.X, p.Y)); }