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 } }