From 95f371ce06220863a6ded1f90c5a3c1aeea2894b Mon Sep 17 00:00:00 2001 From: Michael Krisper <michael.krisper@tugraz.at> Date: Tue, 7 Jun 2016 11:58:14 +0200 Subject: [PATCH] more convenient delaunay map DrawGraph Method --- .../Data/Gearbox/TransmissionLossMap.cs | 5 +++++ VectoCore/VectoCore/Utils/DelaunayMap.cs | 19 +++++++++++++------ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/Gearbox/TransmissionLossMap.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/Gearbox/TransmissionLossMap.cs index 86e0c3978c..11144a9f16 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Data/Gearbox/TransmissionLossMap.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/Gearbox/TransmissionLossMap.cs @@ -67,6 +67,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox set { _lossMap.Extrapolated = value; } } + public void DrawGraph() + { + _lossMap.DrawGraph(); + } + public string GearName { get; private set; } public static TransmissionLossMap ReadFromFile(string fileName, double gearRatio, string gearName) diff --git a/VectoCore/VectoCore/Utils/DelaunayMap.cs b/VectoCore/VectoCore/Utils/DelaunayMap.cs index d5cad22b24..b956dc5178 100644 --- a/VectoCore/VectoCore/Utils/DelaunayMap.cs +++ b/VectoCore/VectoCore/Utils/DelaunayMap.cs @@ -129,8 +129,9 @@ namespace TUGraz.VectoCore.Utils } } +#if TRACE DrawGraph(pointCount, triangles, superTriangle, points); - +#endif _convexHull = triangles.FindAll(t => t.SharesVertexWith(superTriangle)). SelectMany(t => t.GetEdges()). Where(e => !(superTriangle.Contains(e.P1) || superTriangle.Contains(e.P2))).ToArray(); @@ -151,17 +152,23 @@ namespace TUGraz.VectoCore.Utils } } + public void DrawGraph() + { + const int max = 100000; + var superTriangle = new Triangle(new Point(max, 0), new Point(0, max), new Point(-max, -max)); + DrawGraph(0, _triangles, superTriangle, Points.ToArray()); + } + /// <summary> /// Draws the delaunay map (except supertriangle). /// </summary> - [Conditional("TRACE")] private static void DrawGraph(int i, List<Triangle> triangles, Triangle superTriangle, Point[] points, Point lastPoint = null) { - var xmin = points.Min(p => p.X); - var xmax = points.Max(p => p.X); - var ymin = points.Min(p => p.Y); - var ymax = points.Max(p => p.Y); + var xmin = Math.Min(points.Min(p => p.X), lastPoint != null ? lastPoint.X : double.NaN); + var xmax = Math.Max(points.Max(p => p.X), lastPoint != null ? lastPoint.X : double.NaN); + var ymin = Math.Min(points.Min(p => p.Y), lastPoint != null ? lastPoint.Y : double.NaN); + var ymax = Math.Max(points.Max(p => p.Y), lastPoint != null ? lastPoint.Y : double.NaN); using (var chart = new Chart { Width = 1000, Height = 1000 }) { chart.ChartAreas.Add(new ChartArea("main") { -- GitLab