示例#1
0
        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));
        }
示例#2
0
 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();
 }
示例#3
0
 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);
        }
示例#5
0
 public List <Knoop> GetKnopen()
 {
     return(Graaf.GetKnopen());
 }