Ich bastele gerade an einem Tool um verschiedenste (vermessungstechnische) Schnitt-Varianten berechnen zu lassen - als erstes den so genannten Geradenschnitt.
In einem ersten Schritt will ich ein paar Komfort-Funktionen einbauen (ich weis: in dem Stadium des Projekts viel zu früh).
Aber das ganze soll später noch viel weiter gehen: es sollen später noch ein paar Spezialfälle und Randbedingungen abgefangen werden und dann auch noch analytische UND nummerische abgeleitet werden.
Für einen mini-ersten Schritt:
Was hier bei der Funktion set_deviation passieren soll:
In Version 1 soll die Funktion zwei Parameter bekommen: dimension und value. Es sollen dann alle Einträge von points[] nach dimension durchsucht werden und der Wert auf value gesetzt werden.
In einem ersten Versuch war der Plan mir mal die Werte von 'Sx' ausgeben zu lassen und zu prüfen, ob ich Werte überhaupt ansprechen und später dann auch überschreiben kann, aber selbst das klappt nicht. Könnt ihr mir mal bitte sagen, warum nicht?
Hier Stand der Dinge:
Code: Alles auswählen
# math. bibs
import math
from sympy import *
import numpy as np
# other bibs
from pprint import pprint
# raw data
points = [
{},
{'name': '1097', 'x': 883.671, 'y': 384.496, 'z': None, 'Sx': None, 'Sy': None, 'Sz': None},
{'name': '13', 'x': 833.852, 'y': 388.750, 'z': None, 'Sx': None, 'Sy': None, 'Sz': None},
{'name': '4', 'x': 839.347, 'y': 408.780, 'z': None, 'Sx': None, 'Sy': None, 'Sz': None},
{'name': '3', 'x': 877.157, 'y': 376.062, 'z': None, 'Sx': None, 'Sy': None, 'Sz': None}
]
def set_deviation():
for point in points:
print(point['Sx'])
set_deviation()
# pprint(points)
m1 = (points[2]['y'] - points[1]['y']) / (points[2]['x'] - points[1]['x'])
m2 = (points[4]['y'] - points[3]['y']) / (points[4]['x'] - points[3]['x'])
# print(m1)
# print(m2)
xs = (points[3]['y'] - points[1]['y'] + m1 * points[1]['x'] - m2 * points[3]['x']) / (m1 - m2)
ys = points[1]['y'] + m1 * (xs - points[1]['x'])
print(xs)
print(ys)