Esempio n. 1
0
        static void Main()
        {
            List <Coordonnees> squareCoords = new List <Coordonnees> {
                new Coordonnees(0, 0),
                new Coordonnees(0, 10),
                new Coordonnees(10, 10),
                new Coordonnees(10, 0)
            };
            List <Coordonnees> rectCoords = new List <Coordonnees> {
                new Coordonnees(0, 0),
                new Coordonnees(25, 0),
                new Coordonnees(25, 10),
                new Coordonnees(0, 10)
            };
            List <Coordonnees> rand1Coords = new List <Coordonnees> {
                new Coordonnees(0, 0),
                new Coordonnees(20, 0),
                new Coordonnees(25, 10),
                new Coordonnees(0, 10)
            };
            List <Coordonnees> rand2Coords = new List <Coordonnees> {
                new Coordonnees(0, 0),
                new Coordonnees(5, 5),
                new Coordonnees(5, 2),
                new Coordonnees(3, 1)
            };
            List <Coordonnees> rand3Coords = new List <Coordonnees> {
                new Coordonnees(0, 0),
                new Coordonnees(0, 15),
                new Coordonnees(5, 10),
                new Coordonnees(5, 0),
                new Coordonnees(9, 9)
            };
            Polyline    pl1 = new Polyline(squareCoords), pl2 = new Polyline(pl1);
            Polygon     pg1 = new Polygon(pl1), pg2 = new Polygon(rand3Coords);
            Coordonnees coord1 = new Coordonnees(12, 7), coord2 = new Coordonnees();
            POI         poi1 = new POI(), poi2 = new POI(7, 9, "Second one");

            List <CartoObj> cartoObjs = new List <CartoObj> {
                pl1, pl2, pg1, pg2, coord1, coord2, poi1, poi2
            };

            Console.WriteLine("All elements:\n");

            foreach (CartoObj cartoObj in cartoObjs)
            {
                Console.WriteLine(cartoObj + "\n");
            }

            Console.WriteLine("\n-----------------------------------------------\nIPointy elements:\n");

            foreach (CartoObj cartoObj in cartoObjs)
            {
                if (cartoObj is IPointy)
                {
                    cartoObj.Draw();
                }
            }

            Console.WriteLine("\n-----------------------------------------------\nNot IPointy elements:\n");

            foreach (CartoObj cartoObj in cartoObjs)
            {
                if (!(cartoObj is IPointy))
                {
                    cartoObj.Draw();
                }
            }

            Console.WriteLine("\n-----------------------------------------------\nThe 5 polylines:\n");

            List <Polyline> polylines = new List <Polyline> {
                pl1, pl2,
                new Polyline(rand1Coords),
                new Polyline(rand2Coords),
                new Polyline(rand3Coords)
            };

            foreach (Polyline polyline in polylines)
            {
                polyline.Draw();
            }

            Console.WriteLine("\n-----------------------------------------------\nSorted polylines (by perimeter):\n");

            polylines.Sort();

            foreach (Polyline polyline in polylines)
            {
                Console.WriteLine(polyline.GetPerimeter().ToString("0.00") + "cm => (#" + polyline.Id + ") " + polyline.GetType());
            }

            Console.WriteLine("\n-----------------------------------------------\nSorted polylines (by bouding box area):\n");

            MyPolylineBoundingBoxComparer comparer = new MyPolylineBoundingBoxComparer();

            polylines.Sort(comparer);

            foreach (Polyline polyline in polylines)
            {
                Console.WriteLine(polyline.GetBoundingBoxArea().ToString("0.00") + "cm^2 => (#" + polyline.Id + ") " + polyline.GetType());
            }

            Console.WriteLine("\n-----------------------------------------------\nFind same polylines:\n");

            Polyline toFind = new Polyline(), findResult = polylines.Find(x => x.GetPerimeter() == toFind.GetPerimeter());

            if (findResult != null)
            {
                Console.WriteLine("Polyline #{0} ({1}cm)\nHas the same perimeter as\nPolyline #{2} ({3}cm)", findResult.Id, findResult.GetPerimeter(), toFind.Id, toFind.GetPerimeter());
            }
            else
            {
                Console.WriteLine("No polylines have the same perimeter.");
            }

            Coordonnees pointToFind = new Coordonnees(2, 2);

            Console.WriteLine("\n-----------------------------------------------\nPolylines that are near the point: {0}\n", pointToFind);

            double precision = 5;

            foreach (Polyline polyline in polylines)
            {
                if (polyline.IsPointClose(pointToFind, precision))
                {
                    Console.WriteLine("Polyline #{0} is near the point!", polyline.Id);
                }
            }

            Console.WriteLine("\n-----------------------------------------------\nSorted cartoObjs (number of Coordonnees objects contained in it):\n");

            MyCartoObjCoordonneesComparer comparer2 = new MyCartoObjCoordonneesComparer();

            cartoObjs.Sort(comparer2);

            foreach (CartoObj cartoObj in cartoObjs)
            {
                Console.WriteLine(cartoObj.GetCoordonneesNb() + " coordonnees => (#" + cartoObj.Id + ") " + cartoObj.GetType());
            }

            Console.ReadKey();
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            #region DECLARATION
            Coordonnees c    = new Coordonnees(150, 120);
            Coordonnees cDef = new Coordonnees();

            POI poi    = new POI(125, 38, "Test");
            POI poiDef = new POI();

            List <Coordonnees> maliste = new List <Coordonnees>();
            {
                maliste.Add(c);
                maliste.Add(cDef);
            }
            Polyline pl    = new Polyline(maliste, Color.FromRgb(255, 0, 0), 17);
            Polyline plDef = new Polyline();

            Polygon pg    = new Polygon("", Colors.Red, Colors.Blue, 0, maliste);
            Polygon pgDef = new Polygon();

            List <CartoObj> listeCO = new List <CartoObj>()
            {
                c, cDef, poi, poiDef, pl, plDef, pg, pgDef
            };

            // Polyline
            List <Coordonnees> listCD2 = new List <Coordonnees>();
            {
                listCD2.Add(new Coordonnees(6, 9));
                listCD2.Add(new Coordonnees(7, 2));
            }
            List <Coordonnees> listCD4 = new List <Coordonnees>();
            {
                listCD4.Add(new Coordonnees(8, 4));
                listCD4.Add(new Coordonnees(3, 0));
                listCD4.Add(new Coordonnees(2, 9));
            }
            List <Coordonnees> listCD5 = new List <Coordonnees>();
            {
                listCD5.Add(new Coordonnees(8, 3));
                listCD5.Add(new Coordonnees(3, 3));
                listCD5.Add(new Coordonnees(5, 7));
            }
            Polyline pl1 = new Polyline();
            Polyline pl2 = new Polyline(listCD2, Colors.Aqua, 5);
            Polyline pl3 = new Polyline();
            Polyline pl4 = new Polyline(listCD4, Colors.Red, 7);
            Polyline pl5 = new Polyline(listCD5, Colors.Green, 9);

            List <Polyline> listePL = new List <Polyline>()
            {
                pl1, pl2, pl3, pl4, pl5
            };

            MyPersonalMapData mdataDef = new MyPersonalMapData();
            mdataDef.OcICartoObj.Add(poiDef);             // plante
            mdataDef.OcICartoObj.Add(pgDef);
            mdataDef.OcICartoObj.Add(plDef);

            Polygon prout = new Polygon("", Colors.RosyBrown, Colors.Teal, 15, listCD4);
            ObservableCollection <ICartoObj> OCtest = new ObservableCollection <ICartoObj>();
            {
                OCtest.Add(prout);
                OCtest.Add(pl2);
                OCtest.Add(poiDef);
            }
            MyPersonalMapData mdata = new MyPersonalMapData("Jooris", "Yannick", "*****@*****.**", OCtest);
            // test depuis le 15/04
            Polyline pl10 = new Polyline(Colors.White, 10);
            Polyline pl11 = new Polyline(Colors.Blue, 11);

            #endregion

            #region TESTS
            bool           exit = false;
            ConsoleKeyInfo choix;

            while (!exit)
            {
                PrintMenu();
                choix = Console.ReadKey();
                Console.Clear();
                switch (choix.Key)
                {
                case ConsoleKey.D1:
                    #region TEST 01
                    Console.WriteLine("Test Coordonnées: ");
                    Console.WriteLine(c.ToString());
                    Console.WriteLine(cDef.ToString());
                    Console.ReadKey();
                    Console.Clear();

                    Console.WriteLine("Test POI: ");
                    Console.WriteLine(poi.ToString());
                    Console.WriteLine(poiDef.ToString());
                    Console.ReadKey();
                    Console.Clear();

                    Console.WriteLine("Test Polyline: ");
                    pl.Draw();
                    plDef.Draw();
                    Console.ReadKey();
                    Console.Clear();

                    Console.WriteLine("Test Polygon: ");
                    pg.Draw();
                    pgDef.Draw();
                    Console.ReadKey();
                    Console.Clear();
                    #endregion
                    break;

                case ConsoleKey.D2:
                    #region TEST 02
                    Console.WriteLine("Liste générique d'objets CartoObjs: ");

                    foreach (CartoObj co in listeCO)
                    {
                        co.Draw();
                    }
                    Console.ReadKey();
                    Console.Clear();

                    Console.WriteLine("Objets implémentant IPointy: ");
                    foreach (CartoObj co in listeCO)
                    {
                        if (co is IPointy)
                        {
                            Console.WriteLine(co.ToString() + "\n");
                        }
                    }
                    Console.ReadKey();
                    Console.Clear();

                    Console.WriteLine("Objets n'implémentant pas IPointy: ");
                    foreach (CartoObj co in listeCO)
                    {
                        if (!(co is IPointy))
                        {
                            Console.WriteLine(co.ToString() + "\n");
                        }
                    }
                    Console.ReadKey();
                    Console.Clear();
                    #endregion
                    break;

                case ConsoleKey.D3:
                    #region TEST 03
                    Console.WriteLine("Liste générique de 5 objets Polyline: ");
                    foreach (Polyline polyline in listePL)
                    {
                        polyline.Draw();
                    }
                    Console.ReadKey();
                    Console.Clear();

                    Console.WriteLine("Tri par ordre croissant de longueur:");
                    listePL.Sort();
                    foreach (Polyline polyline in listePL)
                    {
                        polyline.Draw();
                    }
                    Console.ReadKey();
                    Console.Clear();

                    Console.WriteLine("Tri par ordre croissant de surface:");
                    MyPolylineBoundingBoxComparer polylineCmp = new MyPolylineBoundingBoxComparer();
                    listePL.Sort(polylineCmp);
                    foreach (Polyline polyline in listePL)
                    {
                        polyline.Draw();
                    }
                    Console.ReadKey();
                    Console.Clear();
                    #endregion
                    break;

                case ConsoleKey.D4:
                    #region TEST 04
                    Console.WriteLine("Comparaison à un Polyline de référence:");
                    listePL.Add(pl2);
                    foreach (Polyline polyline in listePL.FindAll(cmp => cmp.Equals(pl1)))
                    {
                        Console.WriteLine(polyline.ToString());
                    }
                    listePL.Remove(pl2);
                    Console.ReadKey();
                    Console.Clear();

                    Console.WriteLine("Polylines proches d'un point passé en paramètre:");
                    foreach (Polyline polyline in listePL)
                    {
                        if (polyline.IsPointClose(5, 5, 2))
                        {
                            Console.WriteLine(polyline.ToString());
                        }
                    }
                    Console.ReadKey();
                    Console.Clear();
                    #endregion
                    break;

                case ConsoleKey.D5:
                    #region TEST 05
                    Console.WriteLine("Mécanisme qui trie une liste de CartoObjs selon le nombre de coordonnées:");
                    foreach (CartoObj co in listeCO)
                    {
                        Console.WriteLine(co.ToString() + "\n");
                    }
                    Console.ReadKey();
                    Console.Clear();
                    MyNombreCoordonneesComparer ncComparer = new MyNombreCoordonneesComparer();
                    listeCO.Sort(ncComparer);
                    foreach (CartoObj co in listeCO)
                    {
                        Console.WriteLine(co.ToString() + "\n");
                    }
                    #endregion
                    break;

                case ConsoleKey.D6:
                    #region TEST 06
                    Console.WriteLine("Test d'objets MyPersonalMapData et de leurs méthodes");
                    Console.WriteLine(mdataDef.ToString() + "\n");
                    Console.WriteLine(mdata.ToString());
                    Console.ReadKey();
                    //Console.Clear();
                    Console.WriteLine("Test BinaryFormatter (save)");
                    Console.WriteLine("Saving...");
                    mdata.Save(@"C:\Users\Yannick\OneDrive\Prog\mapdata.dat");
                    Console.WriteLine("Done!");
                    Console.ReadKey();
                    //Console.Clear();
                    Console.WriteLine("Test BinaryFormatter (load)");
                    MyPersonalMapData fromfile = new MyPersonalMapData("Jooris", "Yannick", "3");
                    Console.WriteLine("Loading...");
                    fromfile.Load(@"C:\Users\Yannick\OneDrive\Prog\mapdata.dat");
                    Console.WriteLine("Done!");
                    Console.WriteLine(fromfile.ToString());
                    Console.ReadKey();
                    #endregion
                    break;

                case ConsoleKey.D7:
                    #region TEST 07
                    Console.WriteLine("Resultat CompareTo: " + pl10.CompareTo(pl11));
                    Console.ReadKey();
                    #endregion
                    break;

                case ConsoleKey.D8:
                    #region TEST 08
                    Console.ReadKey();
                    #endregion
                    break;

                case ConsoleKey.Escape:
                    exit = true;
                    break;
                }
            }
            #endregion
        }
Esempio n. 3
0
        static void Main(string[] args)
        {
            //Test création
            Console.WriteLine("Création des objets manuellement");
            POI Test1 = new POI(28, 27);
            POI Test2 = new POI(25.26, 27.38);

            Test1.Draw();
            Test2.Draw();
            Polyline Test3 = new Polyline(new POI(22, 54));
            Polyline Test4 = new Polyline();

            Test3.Draw();
            Test4.Draw();
            Polygon Test5 = new Polygon();
            Polygon Test6 = new Polygon(new Polyline());
            Polygon Test7 = new Polygon(new Polyline(new POI(99, 97)));

            Test5.Draw();
            Test6.Draw();
            Test7.Draw();
            //Création liste
            Console.WriteLine("Création de la liste");
            List <CartoObj> myCartoObjList = new List <CartoObj>();

            myCartoObjList.Add(Test1);
            myCartoObjList.Add(Test2);
            myCartoObjList.Add(Test3);
            myCartoObjList.Add(Test4);
            myCartoObjList.Add(Test5);
            myCartoObjList.Add(Test6);
            myCartoObjList.Add(Test7);
            Console.WriteLine("Liste créée");
            //Affichage via foreach
            Console.WriteLine("Affichage via boucle foreach");
            foreach (CartoObj unObjet in myCartoObjList)
            {
                unObjet.Draw();
            }
            //Parcourir la liste pour trouver les objets implémentant l'interface IPointy
            Console.WriteLine("Affichage des objets implémentant IPointy");
            foreach (CartoObj unObjet in myCartoObjList)
            {
                if (unObjet is IPointy)
                {
                    unObjet.Draw();
                }
            }
            //Parcourir la liste pour afficher les objets n'implémentant pas l'interface IPointy
            Console.WriteLine("Affichage des objets n'implémentant pas IPointy");
            foreach (CartoObj unObjet in myCartoObjList)
            {
                if (unObjet is POI)
                {
                    unObjet.Draw();
                }
            }
            //Création de la liste générique de 5 Polyline
            Console.WriteLine("Création de la liste générique");
            List <Polyline> listeGenPolyline = new List <Polyline>();
            Polyline        Poly1            = new Polyline(new POI(25.0, 65.2));

            Poly1.AddPOI(new POI(60.0, 48.5));
            Polyline Poly2 = new Polyline(new POI(85.1, 45.6));

            Poly2.AddPOI(new POI(1, 1));
            Poly2.AddPOI(new POI(5.5, 6.7));
            Polyline Poly3 = new Polyline();

            Poly3.AddPOI(new POI(8.7, 5.1));
            Polyline Poly4 = new Polyline();

            Poly4.AddPOI(new POI(10, 85));
            Poly4.AddPOI(new POI(74, 65));
            Polyline Poly5 = new Polyline();

            Poly5.AddPOI(new POI(0, 0));
            listeGenPolyline.Add(Poly1);
            listeGenPolyline.Add(Poly2);
            listeGenPolyline.Add(Poly3);
            listeGenPolyline.Add(Poly4);
            listeGenPolyline.Add(Poly5);
            //Affichage de la liste
            Console.WriteLine("Affichage de la liste générique");
            foreach (Polyline unPoly in listeGenPolyline)
            {
                unPoly.Draw();
            }
            //Tri de la liste
            Console.WriteLine("Tri de la liste sur sa longueur de facon croissante");
            listeGenPolyline.Sort();
            //Affichage de la liste triée
            Console.WriteLine("Affichage de la liste triée");
            foreach (Polyline unPoly in listeGenPolyline)
            {
                unPoly.Draw();
            }
            //Tri de la liste par taille de bounding box
            Console.WriteLine("Tri de la liste par rapport a la taille de sa bounding box");
            MyPolylineBoundingBoxComparer cmp = new MyPolylineBoundingBoxComparer();

            listeGenPolyline.Sort(cmp);
            foreach (Polyline unPoly in listeGenPolyline)
            {
                unPoly.Draw();
            }
            //Test de la méthode Equals
            Console.WriteLine("Recherche d'une polyline ayant la meme longueur qu'une autre");
            Polyline TestPoly1 = new Polyline(new POI(50, 21));
            Polyline TestPoly2 = new Polyline(new POI(8.7, 5.1));
            Polyline TestPoly3 = new Polyline();

            TestPoly3.AddPOI(new POI(52.2, 89.2));
            TestPoly3.AddPOI(new POI(0.2, 0.5));
            Console.WriteLine("Test de Poly 1");
            TestPoly1.Draw();
            if (listeGenPolyline.Contains(TestPoly1))
            {
                Console.WriteLine("Trouvé");
            }
            else
            {
                Console.WriteLine("Non trouvé");
            }
            Console.WriteLine("Test de Poly 2");
            TestPoly2.Draw();
            if (listeGenPolyline.Contains(TestPoly2))
            {
                Console.WriteLine("Trouvé");
            }
            else
            {
                Console.WriteLine("Non trouvé");
            }
            Console.WriteLine("Test de Poly 3");
            TestPoly3.Draw();
            if (listeGenPolyline.Contains(TestPoly3))
            {
                Console.WriteLine("Trouvé");
            }
            else
            {
                Console.WriteLine("Non trouvé");
            }
            //Test de la méthode IsPointClose
            Console.WriteLine("Test de la méthode IsPointClose");
            foreach (Polyline unPoly in listeGenPolyline)
            {
                if (unPoly.IsPointClose(0, 0, 200))
                {
                    Console.WriteLine("Polyline proche du point : ");
                    unPoly.Draw();
                }
            }
            Console.WriteLine("Fin de l'applic test");
            Console.ReadKey();
        }
Esempio n. 4
0
        static void Main(string[] args)
        {
            Coordonnees coordonnees = new Coordonnees(1, 1);


            Polygon polygon = new Polygon(coordonnees, Colors.Black, Colors.Black, 1);

            polygon.Coordonnees.Add(new Coordonnees(2, 4));
            polygon.Coordonnees.Add(new Coordonnees(5, 3));
            polygon.Coordonnees.Add(new Coordonnees(6, 1));
            Console.WriteLine(polygon.ToString());

            Console.WriteLine("Le point est il proche selon la precision : {0}", polygon.IsPointClose(new Coordonnees(3, 1), 1));
            Console.WriteLine("Le point est il proche selon la precision : {0}", polygon.IsPointClose(new Coordonnees(8, 3), 1));
            Console.WriteLine("Nombre de point du polygon : {0}", polygon.NbPoints);
            POI poi = new POI();

            Polygon polygon1 = new Polygon(new Coordonnees(2, 2), Colors.Black, Colors.Black, 1);
            Polygon polygon2 = new Polygon();

            Polyline polyline1 = new Polyline(null, Colors.Black, 1);
            Polyline polyline2 = new Polyline();

            polygon2.Coordonnees.Add(new Coordonnees(2, 4));
            polygon2.Coordonnees.Add(new Coordonnees(5, 3));
            polygon2.Coordonnees.Add(new Coordonnees(6, 1));


            polyline2.Coordonnees.Add(new Coordonnees(0, 0));
            polyline2.Coordonnees.Add(new Coordonnees(0, 1));
            polyline2.Coordonnees.Add(new Coordonnees(1, 1));
            polyline2.Coordonnees.Add(new Coordonnees(1, 0));


            polyline1.Coordonnees.Add(new Coordonnees(10, 0));
            polyline1.Coordonnees.Add(new Coordonnees(8, 8));
            polyline1.Coordonnees.Add(new Coordonnees(10, 10));


            Console.WriteLine("\n\n polygon 1 : ");
            Console.WriteLine(polygon1.ToString());
            Console.WriteLine("\n\n polygon 2 : ");
            Console.WriteLine(polygon2.ToString());

            Console.WriteLine("\n\n polyline 1 : ");
            Console.WriteLine(polyline1.ToString());
            Console.WriteLine("\n\n polyline 2 : ");
            Console.WriteLine(polyline2.ToString());

            Console.WriteLine("Le point est il proche selon la precision : {0}", polygon2.IsPointClose(new Coordonnees(1, 5), 1));
            Console.WriteLine("Le point est il proche selon la precision : {0}", polygon2.IsPointClose(new Coordonnees(5, 1), 1));

            List <CartoObj> ListCart = new List <CartoObj>
            {
                polyline1,
                polyline2,
                polygon2,
                new Coordonnees(),
                polygon1,
                poi
            };

            Console.WriteLine("\n\n\n-- Liste de CartoObj --");
            foreach (CartoObj cart in ListCart)
            {
                Console.WriteLine(cart.ToString());
            }

            List <IPointy> IP = new List <IPointy>
            {
                polygon1,
                polyline2,
                polygon2,
                polyline1
            };

            Console.WriteLine("\n\n\n-- Liste de IPointy --");
            foreach (IPointy ip in IP)
            {
                Console.WriteLine(ip.ToString());
            }


            List <Polyline> t = new List <Polyline>
            {
                polyline1,
                polyline2
            };

            Console.WriteLine("\n\n\n-- Liste de Polyline avant sort --");
            foreach (CartoObj cart in t)
            {
                Console.WriteLine(cart.ToString());
            }

            t.Sort();

            Console.WriteLine("\n\n\n-- Liste de Polyline apres sort --");
            foreach (CartoObj cart in t)
            {
                Console.WriteLine(cart.ToString());
            }

            MyPolylineBoundingBoxComparer mpoly = new MyPolylineBoundingBoxComparer();

            Console.WriteLine("\n\n\n-- Tri par la longueur du bounding --");
            t.Sort(mpoly);

            foreach (Polyline cart in t)
            {
                Console.WriteLine(cart.ToString());
            }

            Console.WriteLine("\n\n\n-- Find --");
            Console.WriteLine(t.Find(x => x.CalculLongueur() == 0));


            Console.WriteLine("\n\n\n-- FindAll --");
            List <Polyline> poly = t.FindAll(x => x.CalculLongueur() == 3);

            Affiche(poly);


            Console.WriteLine("\n\n\n-- FindAll ISPointClose --");
            poly = t.FindAll(x => x.IsPointClose(new Coordonnees(1, 0.5), 1));
            Affiche(poly);

            Console.WriteLine("\n\n\n-- Compare CartoObj --");
            Console.WriteLine("\n-- UnSort --");
            CartoComparer carte = new CartoComparer();

            foreach (CartoObj obj in ListCart)
            {
                Console.WriteLine(obj.ToString());
                Console.WriteLine("----------------------------------------------------------");
            }

            Console.WriteLine("\n\n-- Sort --");
            ListCart.Sort(carte);
            foreach (CartoObj obj in ListCart)
            {
                Console.WriteLine(obj.ToString());
                Console.WriteLine("----------------------------------------------------------");
            }


            Console.ReadKey();
        }
Esempio n. 5
0
        static void Main(string[] args)
        {
            Console.WriteLine("------------------------------------------------------------");
            Console.WriteLine("---------créer et afficher 2 objets de chaque sorte---------");
            Console.WriteLine("------------------------------------------------------------");
            Console.WriteLine("------------------COORDONNEES------------------");
            Coordonnees C1 = new Coordonnees();

            Console.WriteLine("Constructeur par defaut de Coordonnees : C1");
            Console.WriteLine(C1.ToString());
            Console.WriteLine("Methode DRAW");
            C1.Draw();

            Console.WriteLine("C1 lat = 1, long = 1");
            C1.Latitude  = 1;
            C1.Longitude = 1;
            Console.WriteLine(C1.ToString());
            Console.WriteLine("Methode DRAW");
            C1.Draw();

            Coordonnees C2 = new Coordonnees(1, 2);

            Console.WriteLine("Constructeur initialisation Coordonnees : C2(1, 2)");
            Console.WriteLine(C2.ToString());
            Console.WriteLine("Methode DRAW");
            C2.Draw();

            bool returnIsPointClose;

            Console.WriteLine("IsPointClose entre C1(lat/long) : " + C1.Latitude + "/" + C1.Longitude + " et C2(lat/long) : " + C2.Latitude + " / " + C2.Longitude);
            Console.WriteLine("Precision = 1.0");
            returnIsPointClose = C1.IsPointClose(C2, 1.0);
            if (returnIsPointClose)
            {
                Console.WriteLine("Point proche...");
            }
            else
            {
                Console.WriteLine("Point pas proche...");
            }

            Console.WriteLine("IsPointClose entre C1(lat/long) : " + C1.Latitude + "/" + C1.Longitude + " et C2(lat/long) : " + C2.Latitude + " / " + C2.Longitude);
            Console.WriteLine("Precision = 0.1");
            returnIsPointClose = C1.IsPointClose(C2, 0.1);
            if (returnIsPointClose)
            {
                Console.WriteLine("Point proche...");
            }
            else
            {
                Console.WriteLine("Point pas proche...");
            }

            Console.WriteLine("------------------POI------------------");
            POI Sraing = new POI();

            Console.WriteLine(Sraing.ToString());
            Console.WriteLine("Latitude" + Sraing.Latitude);
            Console.WriteLine("Longitude" + Sraing.Longitude);
            Console.WriteLine("Methode DRAW");
            Sraing.Draw();

            Console.WriteLine("IsPointClose entre Sraing(lat/long) : " + Sraing.Latitude + "/" + Sraing.Longitude + " et C2(lat/long) : " + C2.Latitude + " / " + C2.Longitude);
            Console.WriteLine("Precision = 100");
            returnIsPointClose = Sraing.IsPointClose(C2, 100);
            if (returnIsPointClose)
            {
                Console.WriteLine("Point proche...");
            }
            else
            {
                Console.WriteLine("Point pas proche...");
            }

            Console.WriteLine("IsPointClose entre Sraing(lat/long) : " + Sraing.Latitude + "/" + Sraing.Longitude + " et C2(lat/long) : " + C2.Latitude + " / " + C2.Longitude);
            Console.WriteLine("Precision = 10");
            returnIsPointClose = Sraing.IsPointClose(C2, 10);
            if (returnIsPointClose)
            {
                Console.WriteLine("Point proche...");
            }
            else
            {
                Console.WriteLine("Point pas proche...");
            }

            Console.WriteLine("------------------POLYLINE------------------");
            List <Coordonnees> tabCoordonnees = new List <Coordonnees>();

            tabCoordonnees.Add(C1);
            tabCoordonnees.Add(C2);
            Polyline P1 = new Polyline(tabCoordonnees, Colors.Red, 5);

            Console.WriteLine("Polyline avec C1 et C2, red, 5...");
            Console.WriteLine(P1);
            Console.WriteLine("Methode DRAW");
            P1.Draw();

            Polyline P2 = new Polyline();

            Console.WriteLine("Polyline constructeur par defaut");
            Console.WriteLine(P2.ToString());

            Console.WriteLine("Polyline nbr de coordonnees differentes : ");
            Console.WriteLine("P2: ");
            Console.WriteLine(P2.GetNbPoints());
            Console.WriteLine("P1: ");
            Console.WriteLine(P1.GetNbPoints());
            Console.WriteLine("P1 --> changement de coordonnees : Coordonnees[] tabCoordonnees2 = { C1, C2, C1 };");
            List <Coordonnees> tabCoordonnees2 = new List <Coordonnees>();

            tabCoordonnees2.Add(C1);
            tabCoordonnees2.Add(C2);
            tabCoordonnees2.Add(C1);
            P1.CollectionDeCoordonnes = tabCoordonnees2;
            Console.WriteLine("P1: ");
            Console.WriteLine(P1.GetNbPoints());

            Console.WriteLine("Polyline P3 avec comme coordonnees (lat,long): (1,1) / (2,3) / (3,1)");
            List <Coordonnees> triangle = new List <Coordonnees>();

            triangle.Add(new Coordonnees(1, 1));
            triangle.Add(new Coordonnees(2, 3));
            triangle.Add(new Coordonnees(3, 1));
            Polyline    P3        = new Polyline(triangle, Colors.Green, 1);
            Coordonnees pointEN22 = new Coordonnees(2, 2);

            Console.WriteLine("IsPointClose entre P3 et pointEN22 (lat/long) : " + pointEN22.Latitude + " / " + pointEN22.Longitude);
            Console.WriteLine("Precision = 0.5");
            returnIsPointClose = P3.IsPointClose(pointEN22, 0.5);
            if (returnIsPointClose)
            {
                Console.WriteLine("Point proche...");
            }
            else
            {
                Console.WriteLine("Point pas proche...");
            }

            Console.WriteLine("Meme IsPointClose MAIS avec une precision de 1.0");
            returnIsPointClose = P3.IsPointClose(pointEN22, 1);
            if (returnIsPointClose)
            {
                Console.WriteLine("Point proche...");
            }
            else
            {
                Console.WriteLine("Point pas proche...");
            }

            Polyline droiteTest = new Polyline();

            droiteTest.CollectionDeCoordonnes.Add(new Coordonnees(1, 1));
            droiteTest.CollectionDeCoordonnes.Add(new Coordonnees(4, 2));
            Console.WriteLine("Coordonnées de la droite : ");
            droiteTest.Draw();
            Console.WriteLine("IsPointClose avec cette droite : avec 2,2 et une precision de 1");
            Console.WriteLine("return de isPointClose : {0}", droiteTest.IsPointClose(new Coordonnees(2, 2), 1.0));
            Console.WriteLine();
            Console.WriteLine("IsPointClose avec cette droite : {0} avec 2,3 et une precision de 1", droiteTest.ToString());
            Console.WriteLine("return de isPointClose : {0}", droiteTest.IsPointClose(new Coordonnees(2, 3), 1.0));


            Console.WriteLine("------------------POLYGON------------------");
            Polygon PN1 = new Polygon(tabCoordonnees, Colors.BurlyWood, Colors.Transparent, 0.5);

            Console.WriteLine("Polygon avec C1 et C2, couleur remplissage=BurlyWood, couleur de contour=Transparent, opacite = 0.5");
            Console.WriteLine(PN1);
            Console.WriteLine("Methode DRAW");
            PN1.Draw();

            Console.WriteLine("set de opacite à 10 (interdit)");
            PN1.Opacite = 10;
            Console.WriteLine("nouvelle valeur de opacite : " + PN1.Opacite);

            Console.WriteLine("constructeur avec opacite à -1 (interdit)");
            Polygon PN3 = new Polygon(tabCoordonnees, Colors.BurlyWood, Colors.Transparent, -1);

            Console.WriteLine(PN3);

            Polygon PN2 = new Polygon();

            Console.WriteLine("Polygon constructeur par defaut");
            Console.WriteLine(PN2);
            Console.WriteLine("Methode DRAW");
            PN2.Draw();

            Console.WriteLine("Polygon nbr de coordonnees differentes : ");
            Console.WriteLine("PN2: ");
            Console.WriteLine(PN2.GetNbPoints());
            Console.WriteLine("PN1: ");
            Console.WriteLine(PN1.GetNbPoints());
            Console.WriteLine("PN1 --> changement de coordonnees : Coordonnees[] tabCoordonnees3 = { C1, C2, C1, new Coordonnees(19, 9) };");
            List <Coordonnees> tabCoordonnees3 = new List <Coordonnees>();

            tabCoordonnees3.Add(C1);
            tabCoordonnees3.Add(C2);
            tabCoordonnees3.Add(C1);
            tabCoordonnees3.Add(new Coordonnees(19, 9));
            PN1._collectionDeCoordonnees = tabCoordonnees3;
            Console.WriteLine("PN1: ");
            Console.WriteLine(PN1.GetNbPoints());

            Console.WriteLine("Polygon PNtriangle avec comme coordonnees (lat,long): (1,1) / (2,3) / (3,1)");
            Polygon     PNtriangle = new Polygon(triangle, Colors.DarkRed, Colors.Blue, 50.0);
            Coordonnees pointEN42  = new Coordonnees(4, 2);

            Console.WriteLine("IsPointClose entre PNtriangle et pointEN42 (lat/long) : " + pointEN42.Latitude + " / " + pointEN42.Longitude);
            Console.WriteLine("Precision = 1.0");
            returnIsPointClose = PNtriangle.IsPointClose(pointEN42, 1.0);
            if (returnIsPointClose)
            {
                Console.WriteLine("Point proche...");
            }
            else
            {
                Console.WriteLine("Point pas proche...");
            }

            Console.WriteLine("IsPointClose entre PNtriangle et pointEN22 (lat/long) : " + pointEN22.Latitude + " / " + pointEN22.Longitude);
            Console.WriteLine("Precision = 1.0");
            returnIsPointClose = PNtriangle.IsPointClose(pointEN22, 1.0);
            if (returnIsPointClose)
            {
                Console.WriteLine("Point proche...");
            }
            else
            {
                Console.WriteLine("Point pas proche...");
            }

            Console.WriteLine("-------------------------------------------------------------------------------------------------------");
            Console.WriteLine("---------ajouter ses objets dans une liste générique d'objet de type CartoOjb (List<CartoObj>)---------");
            Console.WriteLine("-------------------------------------------------------------------------------------------------------");
            List <CartoObj> listeDeCartoObj = new List <CartoObj>();

            listeDeCartoObj.Add(C1);
            listeDeCartoObj.Add(C2);
            listeDeCartoObj.Add(Sraing);
            listeDeCartoObj.Add(P1);
            listeDeCartoObj.Add(P2);
            listeDeCartoObj.Add(PN1);
            listeDeCartoObj.Add(PN2);
            listeDeCartoObj.Add(PN3);

            Console.WriteLine();
            Console.WriteLine("----------------------------------------------------------------------");
            Console.WriteLine("---------afficher cette liste en utilisant le mot clé foreach---------");
            Console.WriteLine("----------------------------------------------------------------------");
            int i = 0;

            foreach (CartoObj o in listeDeCartoObj)
            {
                Console.Write("Elm[{0}]", i);
                o.Draw();
                Console.WriteLine();
                i++;
            }

            Console.WriteLine();
            Console.WriteLine("-------------------------------------------------------------------------------");
            Console.WriteLine("---------afficher la liste des objets implémentant l'interface IPointy---------");
            Console.WriteLine("-------------------------------------------------------------------------------");
            i = 0;
            foreach (CartoObj o in listeDeCartoObj)
            {
                if (o is IPointy)
                {
                    Console.Write("Elm[{0}]", i);
                    i++;
                    o.Draw();
                    Console.WriteLine();
                }
            }

            Console.WriteLine();
            Console.WriteLine("-----------------------------------------------------------------------------------------");
            Console.WriteLine("---------afficher la liste des objets qui n'implémentent pas l'interface IPointy---------");
            Console.WriteLine("-----------------------------------------------------------------------------------------");
            i = 0;
            foreach (CartoObj o in listeDeCartoObj)
            {
                if (!(o is IPointy))
                {
                    Console.Write("Elm[{0}]", i);
                    i++;
                    o.Draw();
                    Console.WriteLine();
                }
            }

            Console.WriteLine();
            Console.WriteLine("---------------------------------------------------------------------");
            Console.WriteLine("---------Créer une liste générique de 5 Polyline, l’afficher---------");
            Console.WriteLine("---------------------------------------------------------------------");
            List <Polyline> listeGeneriquePolyline = new List <Polyline>();

            listeGeneriquePolyline.Add(P1);
            P2.CollectionDeCoordonnes = tabCoordonnees3;
            listeGeneriquePolyline.Add(P2);
            listeGeneriquePolyline.Add(P3);
            listeGeneriquePolyline.Add(new Polyline(tabCoordonnees, Colors.Black, 19));

            i = 0;
            foreach (Polyline P in listeGeneriquePolyline)
            {
                Console.WriteLine("listeGeneriquePolyline[{0}]", i);
                P.Draw();
                Console.WriteLine();
                i++;
            }

            Console.WriteLine();
            Console.WriteLine("-----------------------------------------------------------------------------------");
            Console.WriteLine("---------la trier par ordre de longueur croissante1 , l’afficher à nouveau---------");
            Console.WriteLine("-----------------------------------------------------------------------------------");
            listeGeneriquePolyline.Sort();
            i = 0;
            foreach (Polyline P in listeGeneriquePolyline)
            {
                Console.WriteLine("listeGeneriquePolyline[{0}]", i);
                Console.WriteLine("longueur totale : {0}", P.longueurPolyline());
                P.Draw();
                Console.WriteLine();
                i++;
            }



            Console.WriteLine();
            Console.WriteLine("-------------------------------------------------------------------------------------------------");
            Console.WriteLine("---------la trier par ordre croissante de surface de bounding box , l’afficher à nouveau---------");
            Console.WriteLine("-------------------------------------------------------------------------------------------------");
            MyPolylineBoundingBoxComparer triParSurface = new MyPolylineBoundingBoxComparer();

            listeGeneriquePolyline.Sort(triParSurface);
            i = 0;
            foreach (Polyline P in listeGeneriquePolyline)
            {
                Console.WriteLine("listeGeneriquePolyline[{0}]", i);
                Console.WriteLine("surface : {0}", P.surfaceBoundingBox());
                P.Draw();
                Console.WriteLine();
                i++;
            }

            Console.WriteLine("Find P1 ? {0}", listeGeneriquePolyline.Find(x => x.Id == P1.Id));

            Console.WriteLine();
            Console.WriteLine("-------------------------------------------------------------------------------------------------------------------");
            Console.WriteLine("---------la trier par ordre croissante de nombre d'objet (différent) de coordonnees , l’afficher à nouveau---------");
            Console.WriteLine("-------------------------------------------------------------------------------------------------------------------");
            NbrCoordonneesComparer triParNbrDeCoordonnees = new NbrCoordonneesComparer();

            listeGeneriquePolyline.Sort(triParNbrDeCoordonnees);
            i = 0;
            foreach (Polyline P in listeGeneriquePolyline)
            {
                Console.WriteLine("listeGeneriquePolyline[{0}]", i);
                Console.WriteLine("nbr de coordonnees differentes : {0}", P.GetNbPoints());
                P.Draw();
                Console.WriteLine();
                i++;
            }


            Console.WriteLine();
            Console.WriteLine("-----------------------------------");
            Console.WriteLine("---------MyPersonalMapData---------");
            Console.WriteLine("-----------------------------------");

            //MyPersonalMapData TestmyPersonalMapData = new MyPersonalMapData();
            //Console.WriteLine("MyPersonalMapData : constructeur par defaut");
            //Console.WriteLine(TestmyPersonalMapData.ToString());

            //Console.WriteLine("\nConstructeur avec paramètres...");
            //string nom;
            //Console.Write("Saisir votre nom : "); nom = Console.ReadLine();
            //string prenom;
            //Console.Write("Saisir votre prenom : "); prenom = Console.ReadLine();
            //string email;
            //Console.Write("Saisir votre email : "); email = Console.ReadLine();


            ObservableCollection <ICartoObj> newObservableCollectionCartoObj = new ObservableCollection <ICartoObj>();

            newObservableCollectionCartoObj.Add(Sraing);
            newObservableCollectionCartoObj.Add(P1);
            newObservableCollectionCartoObj.Add(PNtriangle);
            MyPersonalMapData Test2myPersonalMapData = new MyPersonalMapData("zeevaert", "arnaud", "*****@*****.**", newObservableCollectionCartoObj);

            Console.WriteLine("MyPersonalMapData : new MyPersonalMapData(zeevaert, arnaud, [email protected], listeDeCartoObj);");
            Console.WriteLine(Test2myPersonalMapData.ToString());



            //newObservableCollectionCartoObj.ge



            string inutile;



            inutile = Console.ReadLine();
        }
        static void Main(string[] args)
        {
            //Constructeur par defaut
            Coordonnees c1     = new Coordonnees();
            POI         poi1   = new POI();
            Polyline    PolyL1 = new Polyline();
            Polygon     PolyG1 = new Polygon();

            //Constructeur d'initialisation
            Coordonnees c2 = new Coordonnees(2, 2);
            Coordonnees c3 = new Coordonnees(4, -2);
            Coordonnees c4 = new Coordonnees(1, -5);
            Coordonnees c5 = new Coordonnees(-3, 0);
            Coordonnees c6 = new Coordonnees(5, 5);

            POI poi2 = new POI("Magnée", c3);

            Coordonnees[] tab1   = { new Coordonnees(2, 0), new Coordonnees(-4, 0), new Coordonnees(-4, -4) };
            Coordonnees[] tab2   = { c3, c2, c4, c5, c6 };
            Coordonnees[] tab3   = { new Coordonnees(3, 3), new Coordonnees(3, 8), new Coordonnees(2, 8) };
            Coordonnees[] tab4   = { new Coordonnees(-3, 3), new Coordonnees(0, 5), new Coordonnees(5, 2), new Coordonnees(2, -4), new Coordonnees(-2, -3) };
            Coordonnees[] tabref = { new Coordonnees(0, 0), new Coordonnees(6, 0) };

            Polyline PolyL2 = new Polyline(tab1, Colors.Blue, 10);
            Polygon  PolyG2 = new Polygon(tab2, Colors.Lime, Colors.Aqua, 1);

            Polyline pol1      = new Polyline(tab1, Colors.Azure, 5);
            Polyline pol2      = new Polyline(tab2, Colors.CornflowerBlue, 2);
            Polyline pol3      = new Polyline(tab3, Colors.Coral, 7);
            Polyline pol4      = new Polyline(tab4, Colors.DarkRed, 9);
            Polyline Reference = new Polyline(tabref, Colors.DarkBlue, 2);

            MyPolylineBoundingBoxComparer pcomp = new MyPolylineBoundingBoxComparer();
            CartoObjComparer ocomp = new CartoObjComparer();

            //Liste générique
            List <CartoObj> cartoObj = new List <CartoObj>()
            {
                c1,
                c2,
                poi1,
                poi2,
                PolyL1,
                PolyL2,
                PolyG1,
                PolyG2
            };

            List <Polyline> polyline = new List <Polyline>()
            {
                pol1,
                pol2,
                pol3,
                pol4
            };

            Console.WriteLine("==============================================");
            Console.WriteLine("------ c1 (Cpd) ---------");
            Console.WriteLine(c1);
            Console.WriteLine("------ poi1 (Cpd) -------");
            Console.WriteLine(poi1);

            Console.WriteLine("\n==============================================");
            Console.WriteLine("------ c2 (Cinit) -------");
            Console.WriteLine(c2);
            Console.WriteLine("------ poi2 (Cinit) -----");
            Console.WriteLine(poi2);

            Console.WriteLine("\n==============================================");
            Console.WriteLine("------ PolyL1 (Cpd) -----");
            PolyL1.Draw();
            Console.WriteLine("\n------ PolyG1 (Cpd) -----");
            PolyG1.Draw();

            Console.WriteLine("\n==============================================");
            Console.WriteLine("------ PolyL2 (Cinit) -----");
            PolyL2.Draw();
            Console.WriteLine("\n------ PolyG2 (Cinit) -----");
            PolyG2.Draw();

            Console.WriteLine("\n==============================================");
            Console.WriteLine("\nc1 IsPointClose c2");
            Console.WriteLine("---> " + c1.IsPointClose(new Coordonnees(1, 6), 6));

            Console.WriteLine("\npoi1 IsPointClose poi2");
            Console.WriteLine("---> " + poi1.IsPointClose(poi2, 4.9));

            Console.WriteLine("\nPolyline IsPointClose c");
            Console.WriteLine("---> " + PolyL2.IsPointClose(new Coordonnees(-3, -4), 1.1));

            Console.WriteLine("\nPolygon IsPointClose c");
            Console.WriteLine("---> " + PolyG2.IsPointClose(new Coordonnees(-3, 3), 0));

            Console.WriteLine("\nNbrPoint PolyLline");
            Console.WriteLine("---> " + PolyL2.GetNumberOfPoint());

            Console.WriteLine("\nNbrPoint Polygon");
            Console.WriteLine("---> " + PolyG2.GetNumberOfPoint());

            Console.WriteLine("\n==============================================");
            Console.WriteLine("\nAffichage de la liste générique de CartoObj\n");
            foreach (CartoObj c in cartoObj)
            {
                c.Draw();
            }

            Console.WriteLine("\n==============================================");
            Console.WriteLine("\nAffichage des CartoObj IPointy\n");
            foreach (CartoObj c in cartoObj)
            {
                if (c is IPointy)
                {
                    c.Draw();
                    Console.WriteLine("-----> is Ipointy\n");
                }
            }

            Console.WriteLine("\n==============================================");
            Console.WriteLine("\nAffichage des CartoObj qui ne sont pas IPointy\n");
            foreach (CartoObj c in cartoObj)
            {
                if (!(c is IPointy))
                {
                    Console.WriteLine(c + " is not Ipointy");
                }
            }

            Console.WriteLine("\n==============================================");
            Console.WriteLine("\nAffichage de la liste générique de polyline\n");
            foreach (Polyline p in polyline)
            {
                p.Draw();
                Console.WriteLine("Longueur du Polyline = " + MathUtile.Longueur(p.Collection) + "\n");
            }

            Console.WriteLine("\n==============================================");
            Console.WriteLine("\nAffichage des polyline trier par ordre de longueur\n");
            polyline.Sort();
            foreach (Polyline p in polyline)
            {
                p.Draw();
                Console.WriteLine("Longueur du Polyline = " + MathUtile.Longueur(p.Collection) + "\n");
            }

            Console.WriteLine("\n==============================================");
            Console.WriteLine("\nAffichage des polyline trier par ordre de surface de BoundingBox\n");
            polyline.Sort(pcomp);
            foreach (Polyline p in polyline)
            {
                p.Draw();
                Console.WriteLine("Surface de la BoundingBox = " + p.PolylineBoundingBox() + "\n");
            }

            Console.WriteLine("\n==============================================");
            Console.WriteLine("\nRecherche si une liste de Polyline contient un polyline de même longueur qu'un polyline de reference\n");
            double longueur = MathUtile.Longueur(Reference.Collection);

            Polyline res = polyline.Find(x => MathUtile.Longueur(x.Collection) == longueur);

            if (res == null)
            {
                Console.WriteLine("Aucune Polyline trouver");
            }
            else
            {
                Console.WriteLine("Longueur polyline de reference = " + longueur);
                Console.WriteLine("Longueur polyline trouver = " + MathUtile.Longueur(res.Collection));
                res.Draw();
            }

            Console.WriteLine("\n==============================================");
            Console.WriteLine("\nAffichage des polyline qui sont proche d'un point\n");
            int cpt = 0;

            foreach (Polyline p in polyline)
            {
                if ((p.IsPointClose(new Coordonnees(0, 0), 1)) == true)
                {
                    Console.WriteLine("Ce polyline est proche du point");
                    p.Draw();
                    cpt++;
                }
            }
            if (cpt == 0)
            {
                Console.WriteLine("Aucun Polyline n'est proche du point...");
            }

            Console.WriteLine("\n==============================================");
            Console.WriteLine("\nAffichage d'une liste de CartoObj trier par nombre de point\n");
            cartoObj.Sort(ocomp);
            foreach (CartoObj c in cartoObj)
            {
                c.Draw();
                Console.WriteLine("Nombre de point -------> " + c.NbrPointCarto() + "\n");
            }

            Console.ReadKey();
        }
Esempio n. 7
0
        public static void Main(string[] args)
        {
            Console.WriteLine("************COORDONNEES************\n");
            Coordonnees A = new Coordonnees(40.25, 48.25);
            Coordonnees B = new Coordonnees(2.25, 12.25);
            Coordonnees C = new Coordonnees(3.45, 50.45);
            Coordonnees D = new Coordonnees(3.25, 10.45);
            Coordonnees Z = new Coordonnees(5.2, 11);

            A.latitude = 41.2;
            Console.WriteLine(A.ToString());
            Console.WriteLine(C.ToString());

            Console.WriteLine("\n**************POI**************\n");
            POI E = new POI();
            POI F = new POI("ici", 25.2, 1.25);
            POI Y = new POI("ok", 14, 2);


            Console.WriteLine(E.ToString());
            Console.WriteLine(F.ToString());

            Console.WriteLine("\n**************** Polyline******************\n");

            Polyline Poly1 = new Polyline(new List <Coordonnees>()
            {
                A, D, Y
            }, 10, Color.FromArgb(255, 255, 255, 255), 1);
            Polyline Poly2 = new Polyline(new List <Coordonnees>()
            {
                E, F
            }, 15, Color.FromArgb(0, 0, 0, 0), 1);
            Polyline Poly3 = new Polyline(new List <Coordonnees>()
            {
                Z, A
            }, 11, Color.FromArgb(254, 0, 211, 0), 0);
            Polyline Poly4 = new Polyline(new List <Coordonnees>()
            {
                Z, B
            }, 11, Color.FromArgb(254, 158, 251, 0), 0);

            Console.WriteLine(Poly1.ToString());
            Console.WriteLine(Poly2.ToString());

            Console.WriteLine("\n**************Polygone**********************\n");
            Polygone Polygone = new Polygone(new List <Coordonnees>()
            {
                A, D, E
            }, Color.FromArgb(165, 187, 195, 0), Color.FromArgb(165, 200, 140, 165), 1, 1);
            Polygone P5 = new Polygone();

            Console.WriteLine(Polygone.ToString());

            Console.WriteLine(P5.ToString());



            Console.WriteLine("\n******************Liste CartObj********************\n");
            List <CartoObj> ListeCart = new List <CartoObj>();

            ListeCart.Add(A);
            ListeCart.Add(E);
            ListeCart.Add(F);
            ListeCart.Add(Poly1);
            ListeCart.Add(Poly2);

            //Afficher la liste
            ListeCart.ForEach(item => Console.WriteLine(item));

            //Afficher ceux qui utilise ipointy
            Console.Write("\n****************On affiche ceux qui utilise IPOINTY*************\n");
            foreach (CartoObj item in ListeCart)
            {
                if (!(item  is IPointy))
                {
                    item.Draw();
                }
            }

            Console.Write("\n****************On affiche ceux qui n'utilise pas IPOINTY*************\n");
            foreach (CartoObj item in ListeCart)
            {
                if (item is IPointy)
                {
                    item.Draw();
                }
            }


            Console.WriteLine("\n****************Cree une liste de 5 polyline***********************\n");
            List <Polyline> Polyliste = new List <Polyline>();

            Polyliste.Add(Poly1);
            Polyliste.Add(Poly2);
            Polyliste.Add(Poly3);
            Polyliste.Add(Poly4);

            foreach (Polyline item in Polyliste)
            {
                Console.WriteLine(item.ToString());
            }

            Polyliste.Sort();

            Console.WriteLine("\n*************************** On Affiche la liste polyline triee -> longueur********************");
            foreach (Polyline item in Polyliste)
            {
                Console.WriteLine(item.ToString());
            }

            Console.WriteLine("\n*************************** On Affiche la liste polyline triee -> AIR Box********************");

            MyPolylineBoundingBoxComparer Compare = new MyPolylineBoundingBoxComparer();

            Polyliste.Sort(Compare);
            foreach (Polyline item in Polyliste)
            {
                Console.WriteLine(item.ToString());
            }


            Console.WriteLine("\n******************Nombre de point Different Dans poly 1 :    **************************");
            int point = Poly1.NbPoints;

            Console.WriteLine("il y a : " + point + "point(s) différent");

            Console.WriteLine("\n**************** Utilisation de IPointCLose*************");
            Polyline P = Polyliste.Find(i => i.IsPointClose(25.2, 71, 1) == 1); //recherche dans la liste un element qui correspont

            if (P == null)                                                      // il ne sera pas proche
            {
                Console.WriteLine("Le point n'est pas proche.");
            }
            else
            {
                Console.WriteLine("Le point est proche ===>");
                P.Draw();
            }

            Polyline P2 = Polyliste.Find(i => i.IsPointClose(41.2, 48, 1) == 1); //recherche dans la liste un element qui correspont

            if (P2 == null)                                                      // il sera proche de la coordonnee A
            {
                Console.WriteLine("Le point n'est pas proche.");
            }
            else
            {
                Console.WriteLine("Le point est proche ===>");
                P2.Draw();
            }

            Console.WriteLine("\n*********************Test Longueur*******************\n");

            double longueur = Poly1.LongueurPoly();

            Console.WriteLine("Voici la longueur:  " + longueur);
            Polyline PP = Polyliste.Find(i => i.LongueurPoly() == longueur);

            if (PP == null)
            {
                Console.WriteLine("Aucun point ne correspond a cette longueur");
            }
            else
            {
                PP.Draw();
            }

            Console.WriteLine("TestLoad et Save");
            ObservableCollection <ICartoObj> ListeTest = new ObservableCollection <ICartoObj>();

            ListeTest.Add(Poly1);



            MyPersonalMapData user = new MyPersonalMapData("Dresse", "Amarige", "email1");

            user.ObservableCollection = ListeTest;

            user.Save();
            Console.ReadKey();
        }
Esempio n. 8
0
        static void Main(string[] args)
        {
            try
            {
                //objet pour les tests!
                POI tPoi = new POI(), tPoi0 = new POI(0, 0);
                POI tPoi1 = new POI(1, 0), tPoi2 = new POI(2, 0);
                POI tPoi3 = new POI(0, 1), tPoi4 = new POI(1, 2);
                POI tPoi5 = new POI(2, 1), tPoi6 = new POI(0, 2);
                POI tPoi7 = new POI(1, 2), tPoi8 = new POI(2, 2);

                Polyline tPolyline = new Polyline();
                Polyline tPolyline1 = new Polyline(), tPolyline2 = new Polyline();
                Polyline tPolyline3 = new Polyline(), tPolyline4 = new Polyline();

                Polygon tPolygon1 = new Polygon(), tPolygon2 = new Polygon();
                Polygon tPolygon3 = new Polygon(), tPolygon4 = new Polygon();

                //construction des polyline et polygon
                tPolyline1.LPOI.Add(tPoi0); tPolyline1.LPOI.Add(tPoi1); tPolyline1.LPOI.Add(tPoi3);
                tPolyline2.LPOI.Add(tPoi0); tPolyline2.LPOI.Add(tPoi2); tPolyline2.LPOI.Add(tPoi6);
                tPolyline3.LPOI.Add(tPoi6); tPolyline3.LPOI.Add(tPoi7); tPolyline3.LPOI.Add(tPoi8); tPolyline3.LPOI.Add(tPoi4);
                tPolygon1.LPolyline.Add(tPolyline2);
                tPolygon2.LPolyline.Add(tPolyline2); tPolygon2.LPolyline.Add(tPolyline1);
                tPolygon3.LPolyline.Add(tPolyline2);
                tPolygon3.LPolyline.Add(tPolyline3);
                tPolygon3.LPolyline.Add(tPolyline1);

                //list de base pour test normaux
                List <CartoObj> lCartoObj = new List <CartoObj>();
                lCartoObj.Add(tPoi2);
                lCartoObj.Add(tPolyline2);
                lCartoObj.Add(tPolygon2);
                lCartoObj.Add(tPolyline1);

                //list de polyline trié
                List <Polyline> lPolyline = new List <Polyline>();
                lPolyline.Add(tPolyline1);
                lPolyline.Add(tPolyline3);
                lPolyline.Add(tPolyline2);
                lPolyline.Add(tPolyline3);
                lPolyline.Add(tPolyline);

                char lec = '1';
                Console.Write("Veuillez entrez le numero de test voulu :");
                lec = (char)Console.Read();
                while (lec != 'q')
                {
                    switch (lec)
                    {
                    case '1':
                        // Test 1
                        //affichage test1
                        Console.WriteLine("Affichage du test 1 :");
                        Console.WriteLine("Zone POI :");
                        tPoi1.Draw();
                        tPoi2.Draw();
                        Console.WriteLine("\nZone Polyline :");
                        tPolyline1.Draw();
                        tPolyline2.Draw();
                        Console.WriteLine("\nZone Polygon :");
                        tPolygon1.Draw();
                        tPolygon2.Draw();

                        break;

                    case '2':
                    case '3':
                        //test 2 et 3
                        // Afficher cette liste en utilisant le mot clé foreach,
                        Console.WriteLine("Affichage du test 2 et 3 :");
                        foreach (CartoObj tmpCartoObj in lCartoObj)
                        {
                            tmpCartoObj.Draw();
                        }
                        break;

                    case '4':
                        //test 4
                        //Afficher la liste des objets cartographiques implémentant l’interface IPointy,
                        Console.WriteLine("Affichage du test 4:");
                        foreach (CartoObj tmpCartoObj in lCartoObj)
                        {
                            if (tmpCartoObj is IPointy)
                            {
                                tmpCartoObj.Draw();
                                Console.WriteLine("Nombre de points : " + (tmpCartoObj as IPointy).NbPoints);
                            }
                        }
                        break;

                    case '5':
                        //test 5
                        // Afficher la liste des objets cartographiques n’implémentant pas l’interface IPointy,
                        int i = 0;
                        Console.WriteLine("Affichage du test 5:");
                        foreach (CartoObj tmpCartoObj in lCartoObj)
                        {
                            if (!(tmpCartoObj is IPointy))
                            {
                                tmpCartoObj.Draw();

                                i++;
                            }
                        }
                        break;

                    case '6':
                        //test 6
                        // Créer une liste générique de 5 Polyline, l’afficher,
                        // la trier par ordre de longueur croissante1, l’afficher à nouveau.
                        // Pour trier, la méthode Sort() de la classe List<T> utilise la méthode CompareTo()
                        // définie grâce à l’implémentation dans la classe Polyline
                        // de l’interface Icomparable<Polyline>,
                        Console.WriteLine("Affichage du test 6: liste polyline non trié:\n");
                        foreach (Polyline tmpPolyline in lPolyline)
                        {
                            tmpPolyline.Draw();
                        }
                        lPolyline.Sort();
                        Console.WriteLine("\n\n\nAffichage liste polyline trié:\n");
                        foreach (Polyline tmpPolyline in lPolyline)
                        {
                            tmpPolyline.Draw();
                        }
                        break;

                    case '7':
                        // test 7
                        // Sans modifier la méthode CompareTo(), trier la précédente liste par ordre croissant
                        // de taille de la surface de la bounding box englobant la polyline.
                        // Pour ce faire, il s’agit de créer une classe MyPolylineBoundingBoxComparer
                        // implémentant l’interface IComparer<Polyline>,
                        MyPolylineBoundingBoxComparer polylineCmp = new MyPolylineBoundingBoxComparer();
                        CartoObj.Precision = 1;
                        Console.WriteLine("Affichage du test 7: liste polyline non trié:\n");
                        foreach (Polyline tmpPolyline in lPolyline)
                        {
                            tmpPolyline.Draw();
                        }
                        lPolyline.Sort(polylineCmp);
                        Console.WriteLine("\n\n\nAffichage liste polyline trié par taille bouding box:\n");
                        foreach (Polyline tmpPolyline in lPolyline)
                        {
                            tmpPolyline.Draw();
                            Console.WriteLine(" bouding : " + tmpPolyline.BoudingBox);
                        }
                        break;

                    case '8':
                        // test 8
                        // Rechercher, parmi les polyline de la liste,
                        // celles qui présentent la même taille qu’une polyline de référence.
                        // Pour ce faire, il s’agit d’implémenter l’interface IEquatable<Polyline>,
                        Console.WriteLine("Test 8 :");
                        Console.WriteLine("Polyline de ref : ");
                        tPolyline1.Draw();
                        Console.WriteLine("\n");
                        foreach (Polyline tmpPolyline in lPolyline)
                        {
                            tmpPolyline.Draw();
                            if (tmpPolyline.Equals(tPolyline1))
                            {
                                // les deux polyline on la même longueur
                                Console.WriteLine("Equals !!");
                            }
                            else
                            {
                                Console.WriteLine("Not Equals!!!");
                            }
                        }
                        break;

                    case '9':
                        // test 9
                        // Rechercher, parmi les polyline de la liste,
                        // celles qui sont proches d’un point passé en paramètre.
                        // Pour ce faire, il s’agit d’utiliser la méthode IsPointClose()
                        // contenue dans l’interface IIsPointClose.
                        double x = 0.5, y = 0.5, preci = 0.9;
                        Console.Write(" Point (" + x + "," + y + ") \n\n");
                        foreach (Polyline tmpPolyline in lPolyline)
                        {
                            tmpPolyline.Draw();

                            if (tmpPolyline.IsPointClose(x, y, preci) == true)
                            {
                                Console.WriteLine("Proche !");
                            }
                            else
                            {
                                Console.WriteLine(" Eloignee !!");
                            }
                        }
                        break;

                    default:
                        Console.Clear();
                        Console.WriteLine("Mauvais numero !!!");
                        break;
                    }
                    Console.ReadKey();
                    Console.Clear();
                    Console.Write("Veuillez entrez le numero de test voulu :");
                    lec = (char)Console.Read();
                }
            }
            catch (Exception r)
            {
                Console.WriteLine("ERREUR !!! " + r.ToString());
                Console.ReadKey();
            }
        }