Zitat:
Zitat von waldfee0071
Code:
bool quadrat()
{
if(x2-x1 == x4-x3 && y2-y1 == y4-y3 && diagonale1 == diagonale2)
return true;
else
return false;
}
|
Dafür würde ich keine extra Funktion schreiben. Die Kurzform von deinem Code wäre nämlich
Code:
bool quadrat() { return (x2-x1 == x4-x3 && y2-y1 == y4-y3 && diagonale1 == diagonale2); }
Ich habe mal etwas Code zu meinem vorigen Post ergänzt. Getestet habe ich es nicht wirklich, Fehler können also durchaus noch drin sein. Aber ansonsten sollte es so eigentlich funktionieren.
Code:
#include <stdio.h>
#include <Math.h>
int main(){
bool found = false;
int Ax, Ay, Bx, By, Cx, Cy, Dx, Dy;
double AB, BC, CD, DA;
//Eckunkte einlesen
printf("Bitte Punkt A in der Form x.y eingeben: ");
scanf("%d.%d", &Ax, &Ay);
printf("Bitte Punkt B in der Form x.y eingeben: ");
scanf("%d.%d", &Bx, &By);
printf("Bitte Punkt V in der Form x.y eingeben: ");
scanf("%d.%d", &Cx, &Cy);
printf("Bitte Punkt D in der Form x.y eingeben: ");
scanf("%d.%d", &Dx, &Dy);
//Eckpunkte zur Kontrolle nochmal ausgeben
printf("\nWerte:\n");
printf("A: x = %d, y = %d\n", Ax, Ay);
printf("B: x = %d, y = %d\n", Bx, By);
printf("C: x = %d, y = %d\n", Cx, Cy);
printf("D: x = %d, y = %d\n", Dx, Dy);
AB = sqrt((Ax - Bx) * (Ax - Bx) + (Ay - By) * (Ay - By));
BC = sqrt((Bx - Cx) * (Bx - Cx) + (By - Cy) * (By - Cy));
CD = sqrt((Cx - Dx) * (Cx - Dx) + (Cy - Dy) * (Cy - Dy));
DA = sqrt((Dx - Ax) * (Dx - Ax) + (Dy - Ay) * (Dy - Ay));
if (AB == BC && AB == CD && AB == DA) { //alle 4 Seiten sind gleich lang
found = true;
if (Ax != Dx || Ay != Cy) printf("\nEs handelt sich um ein Rhombus!"); //da kein rechter Winkel existiert
else printf("\nEs handelt sich um ein Quadrat!"); //da 4 rechte Winkel existieren
}
if (AB == CD && DA == BC) { //die jeweils gegenüberliegenden Seiten sind gleich lang
found = true;
if (Ax != Dx || Ay != Cy) printf("\nEs handelt sich um ein Parallelogramm!"); //da kein rechter Winkel existiert
else printf("\nEs handelt sich um ein Rechteck!"); //da 4 rechte Winkel existieren
}
if ((AB == DA && BC == CD) || (AB == BC && CD && DA)) {
found = true;
printf("\nEs handelt sich um ein Deltoid!"); //da 2x2 oder 4 gleichlange Seiten existieren
}
if (!found) printf("\nEs handelt sich um ein allgemeines Viereck!"); //da bis jetzt keine übereinstimmung gefunden wurde
}