def area(x1, y1, x2, y2, x3, y3):
    # Die Funktion Area berechnet anhand der x und y Koordinaten der Punkte die 
    # Fläche der Dreiecke. Und gibt das entsprechende Ergebnis zurück.
    resultat = fabs((x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)) / 2.0)
    
    return resultat

def isInside(x1, y1, x2, y2, x3, y3, x, y):
    # Die Funktion isInside ruft für die Berechnung der Fläche der Dreiecke die 
    # Funktion Area auf, die wiederum anhand der Koordinatenwerte die Fläche der 
    # einzelnen Dreiecke berechnet.

    # Zuerst werden die vier Variablen für die Ergebnisse der Flächenberechnung deklariert.
    # Dann die Boolesche Variable result, die der Rückgabewert der Funktion isInside ist.
    # Die Fläche des Dreiecks ABC mit Hilfe der Funktion Area berechnen.
    a = area(x1, y1, x2, y2, x3, y3)
    
    # Die Fläche des Dreiecks PBC mit Area berechnen.
    a1 = area(x, y, x2, y2, x3, y3)
    
    # Die Fläche des Dreiecks PAC mit Area berechnen.
    a2 = area(x, y, x1, y1, x3, y3)
    
    # Die Fläche des Dreiecks PAB mit Area berechnen.
    a3 = area(x, y, x1, y1, x2, y2)
    
    # In der nachfolgenden Fallunterscheidung wird geprüft, ob die Fläche des 
    # ursprünglichen Dreiecks (ABC) mit der Summe der drei Dreiecke, die durch 
    # die hinzunahme von P gebildet wurden, übereinstimmt. Im Fall, dass die beiden 
    # Wert gleich sind, wird der Variablen result der Wert true zugewiesen, 
    # andernfalls der Wert false.
    if a == a1 + a2 + a3:
        resultat = True
    else:
        resultat = False
    
    return resultat

# Main
# Zu Beginn werden die Variablen für die acht Koordinaten, jeder der vier Punkte
#  besitzt, eine y und x Koordinaten, deklariert.
# Koordinaten für A (x1,y1)
# Koordinaten für B (x2,y2)
# Koordinaten für C (x3,y3)
# Koordinaten von P(x,y)
# Jetzt werden die Koordinaten für A abgefragt, zuerst der X-Wert und dann der Y-Wert.
print("X-Koordinate x1 von A(x1,y1)")
x1 = float(input())
print("Y-Koordinate y1 von A(x1,y1)")
y1 = float(input())

# Jetzt die Koordinaten x2 und y2 von B(x2,y2).
print("X-Koordinate x2 von B(x2,y2)")
x2 = float(input())
print("Y-Koordinate y2 von B(x2,y2)")
y2 = float(input())

# Am Schluss die Koordinaten von C(x3,y3)
print("X-Koordinate x3 von C(x3,y3)")
x3 = float(input())
print("Y-Koordinate y3 von C(x3,y3)")
y3 = float(input())

# Die Koordinaten des Punktes P
print("Die X-Koordinate von P(x,y)")
x = float(input())
print("Die Y-Koordinate von P(x,y)")
y = float(input())

# Die eingegebenen Werte werden jetzt an die Funktion isInside übergeben.
# Der Rückgabewert dieser Funktion ist entweder true oder false. Im Fall, dass 
# sich der Punkt P innerhalb des Dreiecks befindet, gibt die Funktion isInside 
# den Wert true zurück, anderfalls den Wert false.
if isInside(x1, y1, x2, y2, x3, y3, x, y):
    print("Der Punkt P(" + str(x) + "," + str(y) + ") befindet sich innerhalb des Dreiecks")
else:
    print("Der Punkt P befindet sich nicht innerhalb des Dreiecks.")
        
        
akzeptieren ablehen

Diese Website verwendet Cookies und Zählpixel, um Ihnen die bestmögliche Nutzung dieser Website zu ermöglichen.Learn more about cookies sehen Sie auch Datenschutz