@Morock war zwar schneller, aber auch ich habe ein simples (Python-) Script geschrieben, dass diese Aufgabe löst.
Ich habe damit exemplarisch die erste Aufgabe und die Schnittpunkte AB&Z und BE&X der zweiten Aufgabe gelöst. Meine Ergebnisse decken sich dabei mit denen von Morock.
Hier ist das Script. Wer Python nicht installiert hat, kann es auch online (z.B. hier) ausführen.
Anzugeben ist dabei die X/Z Koordinaten der beiden Punkte (Reihenfolge egal) und ob die Linie, also das Niemandsland, vertikal oder horizontal verläuft mit entsprechender Koordinate.
Ich habe damit exemplarisch die erste Aufgabe und die Schnittpunkte AB&Z und BE&X der zweiten Aufgabe gelöst. Meine Ergebnisse decken sich dabei mit denen von Morock.
Hier ist das Script. Wer Python nicht installiert hat, kann es auch online (z.B. hier) ausführen.
Anzugeben ist dabei die X/Z Koordinaten der beiden Punkte (Reihenfolge egal) und ob die Linie, also das Niemandsland, vertikal oder horizontal verläuft mit entsprechender Koordinate.
Code:
# Eingabe der Punkte
pointA_X = int(input("Erster Punkt, X: "))
pointA_Z = int(input("Erster Punkt, Z: "))
pointB_X = int(input("Zweiter Punkt, X: "))
pointB_Z = int(input("Zweiter Punkt, Z: "))
dist_BA_X = pointB_X - pointA_X
dist_BA_Z = pointB_Z - pointA_Z
line_direction = input("'v' für vertikale Linie, 'h' für horizontale Linie: ")
# Berechnung in Abhängigkeit der Linienausrichtung
if line_direction == "v":
line_X = int(input("X-Koordinate der Linie: "))
dist_h = line_X - pointA_X
dist_v = dist_BA_Z * dist_h / dist_BA_X
pos_x = line_X
pos_z = pointA_Z + dist_v
elif line_direction == "h":
line_Z = int(input("Z-Koordinate der Linie: "))
dist_v = line_Z - pointA_Z
dist_h = dist_BA_X * dist_v / dist_BA_Z
pos_x = pointA_X + dist_h
pos_z = line_Z
else:
print("Fehlerhafte Eingabe")
print("Schnittpunkt (X|Z): {0:.2f} | {1:.2f}".format(pos_x, pos_z))