private void znajdzNajmnPunkt()
 {
     int tmp = 0;
     for (int i = 1; i < listaP.Count; i++)
     {
         if (listaP[i].CompareTo(listaP[tmp]) < 0)
             tmp = i;
     }
     najmniejszyP = listaP[tmp];
     listaP[tmp] = listaP[0];
     listaP[0] = najmniejszyP;
 }
        private void WypelnijMacierz(Punkt a, Punkt b, Punkt c)
        {
            macierz[0, 0] = a.X;
            macierz[0, 1] = a.Y;
            macierz[0, 2] = 1;

            macierz[1, 0] = b.X;
            macierz[1, 1] = b.Y;
            macierz[1, 2] = 1;

            macierz[2, 0] = c.X;
            macierz[2, 1] = c.Y;
            macierz[2, 2] = 1;
        }
 private int ObliczDet(Punkt a, Punkt b, Punkt c)
 {
     WypelnijMacierz(a, b, c);
     return det = macierz[0, 0] * macierz[1, 1] + macierz[1, 0] * macierz[2, 1] + macierz[2, 0] * macierz[0, 1] - macierz[1, 1] * macierz[2, 0] - macierz[2, 1] * macierz[0, 0] - macierz[0, 1] * macierz[1, 0];
 }
 public int SprawdzPunkt(Punkt pkt)
 {
     foreach( Punkt wierzcholek in naszaFigura.wierzcholkiFigury)//sprawdzamy czy punkt nie jest wierzcholkiem
     {
         if (wierzcholek.CompareTo(pkt) == 0)
             return 0; //ok
     }
     foreach(Prosta bok in naszaFigura.bokiFigury)//sprawdzamy czy punkt lezy na ktoryms z bokow figury
     {
         if (bok.CzyLezyNaBoku(pkt))
             return 0; //ok
     }
     if (naszaFigura.IlePrzetnieWierzcholek(pkt) == 2)//sprawdzamy przypadek szczegolny gdy punkt lezy na linii wierzcholku
         return 1; //nieok
     else if (naszaFigura.IlePrzetnieWierzcholek(pkt) == 0)
     {
         if (naszaFigura.IlePrzetnieBokow(pkt) == 1)
             return 0; //ok
         else if (naszaFigura.IlePrzetnieBokow(pkt) == 2 || naszaFigura.IlePrzetnieBokow(pkt) == 0)
             return 1; //nieok
         else
         {
             Console.WriteLine("cos nie pyklo przecielo sie wiecej niz dwa razy. Nacisnij cokolwiek aby kontynuowac");
             Console.ReadKey();
             return 1; //nieok
         }
     }
     else if(naszaFigura.IlePrzetnieWierzcholek(pkt) == 1)
     {
         if (naszaFigura.IlePrzetnieBokow(pkt) == 1)
             return 1; //nieok
         else if (naszaFigura.IlePrzetnieBokow(pkt) == 0)
         {
             if (naszaFigura.IlePrzetnieWierzcholekLewo(pkt) == 1)
                 return 0;//ok
             else if(naszaFigura.IlePrzetnieWierzcholekLewo(pkt) == 0)
             {
                 if (naszaFigura.IlePrzetnieBokowLewo(pkt) == 0)
                     return 1;//nieok
                 else if (naszaFigura.IlePrzetnieBokowLewo(pkt) == 1)
                     return 0;//ok
                 else
                 {
                     Console.WriteLine("cos nie pyklo przecielo sie wiecej niz dwa razy w lewo.");
                     Console.ReadKey();
                     return 1; //nieok
                 }
             }
             else
             {
                 Console.WriteLine("cos nie pyklo przecielo wierzcholki wiecej niz raz w lewo.");
                 Console.ReadKey();
                 return 1; //nieok
             }
         }
         else
         {
             Console.WriteLine("cos nie pyklo przecielo sie wiecej niz dwa razy.");
             Console.WriteLine(naszaFigura.IlePrzetnieBokow(pkt));
             Console.WriteLine(pkt);
             Console.ReadKey();
             return 1; //nieok
         }
     }
     else
     {
         Console.WriteLine("cos nie pyklo przecielo wierzcholek wiecej niz dwa razy.");
         Console.ReadKey();
         return 1; //nieok
     }
 }