Spotkałem się z podobnym problemem i trafiłem na to forum. Niestety nic tu nie znalazłem, ale udało mi się rozwiązać ten problem i to z nawiązką, gdyż sprawdzenie zawsze wskazuje na TRUE. Pewnie znajdzie się jeszcze kilka osób, które będą miały ten sam problem, dlatego umieszczam swoje rozwiązanie jako podpowiedź. Mój kod rysuje tylko i wyłącznie dowolne prostokąty. Poniżej podrzucam część stałą klasy Punkt :
int x1 = 1, x2 = 6, y1 = 3, y2 = 4; // stała deklaracja punktów
bool test; // deklaracja zmiennej sprawdzającej
int[][] Rogi = new int[4][]; // deklaracja tablicy współrzędnych
A tu pod spodem moją metodę SprawdzenieProstokata:
void SprawdzenieProstokata()
{
Punkt punkt1 = new Punkt(); // odwołanie do obiektu
// przypisanie do tablicy wartości punktów
Rogi[0] = new int[2] { punkt1.x1, punkt1.y2 };
Rogi[1] = new int[2] { punkt1.x1, punkt1.y1 };
Rogi[2] = new int[2] { punkt1.x2, punkt1.y1 };
Rogi[3] = new int[2] { punkt1.x2, punkt1.y2 };
for (int i = 0; i < Rogi.Length; i++) // stworzenie odczytu tablicy pod warunek sprawdzający
{
for (int j = 0; j < Rogi[i].Length; j++)
{
//Console.Write("{0} ", Rogi[i][j]);
if (Rogi[0][0] == Rogi[1][0] && Rogi[2][0] == Rogi[3][0] && Rogi[0][1] == Rogi[3][1] && Rogi[1][1] == Rogi[2][1])
{
test = true;
}
else
test = false;
}
//Console.WriteLine();
}
Console.WriteLine(test); // zwrot testu (w tym przypadku zawsze będzie TRUE)
}