private double BerekenLengte() { //Dit doen we door de afstanden tussen de vertices van elk van de segmenten te berekenen double totaleLengte = 0; Graaf graaf = this.Graaf; var map = graaf.Map; //In een graaf komen meerdere keren hetzelfde segment voor, dus hou ik een lijst bij met de segmentID's van reeds berekende segmenten List <int> berekendeSegmentIDs = new List <int>(); foreach (KeyValuePair <Knoop, List <Segment> > knoop in map) { foreach (Segment segment in knoop.Value) { if (!berekendeSegmentIDs.Contains(segment.SegmentID)) { List <Punt> vertices = segment.Vertices; for (int i = 1; i < vertices.Count; i++) { Punt eerstePunt = vertices[i - 1]; Punt tweedePunt = vertices[i]; double lengte = Math.Sqrt(Math.Pow(Math.Abs(eerstePunt.X - tweedePunt.X), 2) + Math.Pow(Math.Abs(eerstePunt.Y - tweedePunt.Y), 2)); totaleLengte += lengte; } berekendeSegmentIDs.Add(segment.SegmentID); } } } return(Math.Round(totaleLengte, 4)); }
public void showStraat() { Console.WriteLine($"{StraatID},{Straatnaam},{Gemeente},{Provincie}"); Console.WriteLine($"Graaf: {Graaf.GraafID} "); Console.WriteLine($"Aantal knopen : {GetKnopen().Count}"); Console.WriteLine($"Aantal wegsegmenten: {GetSegmenten().Count}"); Graaf.ShowGraaf(); }
public Straat(string straatnaam, Graaf graaf, string provincie, string gemeente) { StraatID = IDGenerator.CreateStraatID(); Straatnaam = straatnaam; Graaf = graaf; Gemeente = gemeente; Provincie = provincie; Lengte = this.BerekenLengte(); }
public List <Straat> MaakStraten(Dictionary <string, Dictionary <string, Dictionary <string, List <Segment> > > > provincies) { List <Straat> straten = new List <Straat>(); foreach (KeyValuePair <string, Dictionary <string, Dictionary <string, List <Segment> > > > provincie in provincies) { foreach (KeyValuePair <string, Dictionary <string, List <Segment> > > gemeente in provincie.Value) { foreach (KeyValuePair <string, List <Segment> > straatIdSeg in gemeente.Value) { string straatnaam = straatIdSeg.Key; Graaf graaf = new Graaf(straatIdSeg.Value); Straat straat = new Straat(straatnaam, graaf, provincie.Key, gemeente.Key); straten.Add(straat); } } } return(straten); }
public List <Knoop> GetKnopen() { return(Graaf.GetKnopen()); }