//public static void Display(string path, SeperatePoints lineSeperatePoints, List<LevelOutLines> outLinesCollection) //{ // var maxX = (int)outLinesCollection.Max(c => c.OutLines.Max(v => v.Points.Max(b => b.X))); // var minX = (int)outLinesCollection.Min(c => c.OutLines.Min(v => v.Points.Min(b => b.X))); // var maxY = (int)outLinesCollection.Max(c => c.OutLines.Max(v => v.Points.Max(b => b.Y))); // var minY = (int)outLinesCollection.Min(c => c.OutLines.Min(v => v.Points.Min(b => b.Y))); // var offSetX = -minX; // var offSetY = -minY; // GraphicsDisplayer = new GraphicsDisplayer(maxX - minX, maxY - minY, offSetX, offSetY); // foreach (var levelOutLines in outLinesCollection) // foreach (var outLine in levelOutLines.OutLines) // Display(outLine); // GraphicsDisplayer.DisplayClosedInterval(lineSeperatePoints.AdvancedPoints.Select(c => c.Point).ToList(), new Pen(Brushes.Red), true); // var randomValue = new Random().Next(10); // GraphicsDisplayer.DisplayPointsText(lineSeperatePoints.AdvancedPoints.Select(c => c.Point).ToList(), Brushes.Red, randomValue, randomValue); // GraphicsDisplayer.SaveTo(path); //} //static void Display(OutLine outLine) //{ // var randomValue = new Random().Next(10); // GraphicsDisplayer.DisplayClosedInterval(outLine.Points, null, false); // if (outLine.Points.Count <= 6) // GraphicsDisplayer.DisplayPointsText(outLine.Points, null, randomValue, randomValue); // foreach (var subOutLine in outLine.SubOutLines) // Display(subOutLine); //} #endregion #region 多管标注分析支持 //internal static void Display(string path, List<PipeAndNodePoint> pipes) //{ // var maxX = (int)pipes.Max(c => new XYZ[] { (c.Pipe.Location as LocationCurve).Curve.GetEndPoint(0), (c.Pipe.Location as LocationCurve).Curve.GetEndPoint(1) }.Max(v => v.X)); // var minX = (int)pipes.Min(c => new XYZ[] { (c.Pipe.Location as LocationCurve).Curve.GetEndPoint(0), (c.Pipe.Location as LocationCurve).Curve.GetEndPoint(1) }.Min(v => v.X)); // var maxY = (int)pipes.Max(c => new XYZ[] { (c.Pipe.Location as LocationCurve).Curve.GetEndPoint(0), (c.Pipe.Location as LocationCurve).Curve.GetEndPoint(1) }.Max(v => v.Y)); // var minY = (int)pipes.Min(c => new XYZ[] { (c.Pipe.Location as LocationCurve).Curve.GetEndPoint(0), (c.Pipe.Location as LocationCurve).Curve.GetEndPoint(1) }.Min(v => v.Y)); // var offSetX = -minX; // var offSetY = -minY; // var GraphicsDisplayer = new GraphicsDisplayer(maxX - minX, maxY - minY, offSetX, offSetY); // GraphicsDisplayer.DisplayLines(pipes.Select(c => (c.Pipe.Location as LocationCurve).Curve as Line).ToList(), new Pen(Brushes.Black), true, true); // GraphicsDisplayer.DisplayPoints(pipes.Select(c => c.NodePoint).ToList(), new Pen(Brushes.Red), true); // GraphicsDisplayer.SaveTo(path); //} #endregion #region 结构做法标注 public static void Display(string path, List <Line> lines, List <XYZ> textLocations) { if (lines.Count() == 0) { return; } var uncross = new Pen(Brushes.LightGray); var cross = new Pen(Brushes.Red); var self = new Pen(Brushes.Black); var maxX = (int)lines.Max(c => new XYZ[] { c.GetEndPoint(0), c.GetEndPoint(1) }.Max(b => b.X)); var minX = (int)lines.Min(c => new XYZ[] { c.GetEndPoint(0), c.GetEndPoint(1) }.Min(b => b.X)); var maxY = (int)lines.Max(c => new XYZ[] { c.GetEndPoint(0), c.GetEndPoint(1) }.Max(b => b.Y)); var minY = (int)lines.Min(c => new XYZ[] { c.GetEndPoint(0), c.GetEndPoint(1) }.Min(b => b.Y)); minX--; minY--; maxX++; maxY++; var offSetX = -minX; var offSetY = -minY; var graphicsDisplayer = new GraphicsDisplayer(minX, maxX, minY, maxY); graphicsDisplayer.DisplayLines(lines, uncross, true, true); graphicsDisplayer.DisplayPoints(textLocations, Pens.Red, true); graphicsDisplayer.SaveTo(path); }