/// <summary>
        /// Opretter en konstellation med et givent navn, ud fra et array af stjerner.
        /// </summary>
        /// <param name="stars">Stjernerne som konstellationen skal bestå af.</param>
        /// <param name="name">Navnet på konstellationen.</param>
        /// <returns></returns>
        public static Constellation CreateConstellation(this Star[] stars, string name)
        {
            // Initialiserer et array så der er plads til stjernerepræsentationer for hver stjerne.
            Constellation.StarRepresentation[] starRepresentations = new Constellation.StarRepresentation[stars.Length];
            for (int i = 0; i < stars.Length; i++)
            {
                List <double> angles    = new List <double>();
                List <double> distances = new List <double>();
                for (int j = 0; j < stars.Length; j++)
                {
                    if (j == i)
                    {
                        continue;
                    }

                    for (int k = 0; k < stars.Length; k++)
                    {
                        if (k == j || k == i || j == i)
                        {
                            continue;
                        }

                        Point p1 = stars[i].CenterPoint;
                        Point p2 = stars[j].CenterPoint;
                        Point p3 = stars[k].CenterPoint;

                        double angle    = ConstellationReader.GetAngularSeperation(p1, p2, p3);
                        double distance = ConstellationReader.GetRelativePointSeperation(p1, p2, p3);

                        // Tilføjer den fundne vinkel.
                        angles.Add(angle);

                        // Tilføjer den fundne afstand.
                        distances.Add(distance);
                    }
                }

                // Samler alle fundne vinkler og afstande til en nyinstantieret repræsentation af en stjerne.
                starRepresentations[i] = new Constellation.StarRepresentation(angles.ToArray(), distances.ToArray());
            }

            // Returnerer en nyinstantieret konstellation med navn og stjernerepræsentationer.
            return(new Constellation(name, starRepresentations));
        }
        public static Star[] FindConstellation(this Star[] stars, Constellation c, double t)
        {
            List <Star> starsInConstellation = new List <Star>();

            int i = 0;

            for (int j = 0; j < stars.Length; j++)
            {
                // Vinkler skal tjekkes på ny for nye stjerne.
                int h = 0;

                for (int k = 0; k < stars.Length; k++)
                {
                    // Sørg for ikke at starte næste løkke, hvis vi allerede ved at den skal springes over.
                    if (k == j)
                    {
                        continue;
                    }

                    for (int l = 0; l < stars.Length; l++)
                    {
                        // Sørg for at de tre stjerne er forskellige.
                        if (l == k || l == j || k == j)
                        {
                            continue;
                        }

                        if (starsInConstellation.Contains(stars[j]))
                        {
                            continue;
                        }

                        Point p1 = stars[j].CenterPoint;
                        Point p2 = stars[k].CenterPoint;
                        Point p3 = stars[l].CenterPoint;

                        double measuredAngle    = ConstellationReader.GetAngularSeperation(p1, p2, p3);
                        double measuredDistance = ConstellationReader.GetRelativePointSeperation(p1, p2, p3);

                        // Tjek hvorvidt om den fundne vinkel, ligger inden for den accepterede afvigelse.
                        if ((measuredAngle <= c.StarRepresentations[i].Angles[h] + t &&
                             measuredAngle >= c.StarRepresentations[i].Angles[h] - t)) //||
                        //(measuredAngle <= 360 - c.StarRepresentations[i].Angles[h] + t &&
                        //measuredAngle >= 360 - c.StarRepresentations[i].Angles[h] - t))
                        {
                            // Tjek hvorvidt om den fundne afstand, ligger inden for den accepterede afvigelse.
                            if (measuredDistance <= c.StarRepresentations[i].Distances[h] + 0.025 &&
                                measuredDistance >= c.StarRepresentations[i].Distances[h] - 0.025)
                            {
                                // Sørger for at det er en ny vinkel som skal tjekkes efter.
                                h++;

                                k = 0;
                                l = 0;

                                // Tjek om alle vinkler allerede er blevet tjekket igennem.
                                if (h == c.StarRepresentations[i].Angles.Length)
                                {
                                    starsInConstellation.Add(stars[j]);

                                    // Fortsæt til næste stjernerepræsentation.
                                    i++;

                                    // Start med at skulle tjekke nye vinkler for den næste stjernerepræsentation.
                                    h = 0;
                                    j = 0;

                                    // Tjek om alle stjernerepræsentationer allerede er blevet tjekket igennem.
                                    if (i == c.StarRepresentations.Length)
                                    {
                                        return(starsInConstellation.ToArray());
                                    }
                                }
                            }
                        }
                    }
                }
            }

            return(null);
        }