Ausrechnen von Matrizen (7Parameter Trafo)

Hallo
auf der Seite http://www.ottmarlabonde.de/L1/DatumsTransformation/…

wird oben ein Rechenbeispiel gezeigt, wo eine Transformation über 7 Parameter gemacht wird. Alle Parameter sind dort gegeben und rotx usw. auch schon im Bogenmass.

Wie komme ich da auf das Ergebnis, welches rechts steht???
Ich komme da nicht drauf, weil ich irgendwas falsch auflöse.
Ich wundere mich auch, weil die Matrix (wenn es eine ist) keine Sin und kosinus Werte enthält.

ich bräuchte Zwischenschritte wie die Formel aufzulösen ist.

Wäre jmd behilflich??? mir mit Zwischenergebnissen zu helfen.

Mfg Werner

hi,

auf der Seite
http://www.ottmarlabonde.de/L1/DatumsTransformation/…

wird oben ein Rechenbeispiel gezeigt, wo eine Transformation
über 7 Parameter gemacht wird. Alle Parameter sind dort
gegeben und rotx usw. auch schon im Bogenmass.

kennst du die technik matrizenmultiplikation?
du bekommst die i-te koordinate des ergebnisvektors, indem du die i-te zeile der matrix mit dem input-vektor skalar multiplizierst.

also z.b.:
Yz = dy + sc * (-rotz * Xq + 1 * Yq + rotx * Zq)

mein openOffice liefert da mit den angegebenen daten als ergebnis
Yz = 585167,576868927
also praktisch das, was auf der seite angegeben ist, wobei bei der 4. kommastelle offenbar nicht gerundet, sondern einfach abgeschnitten wurde.

hth
m.

Hallo Michael
hoffe du meldest dich umgehend nochmal.
Also wenn ich deine Zeile nachvollziehe, bekomme ich was anderes raus.
Deswegen brauche ich wohl deine Beispielzeile mit Zahlenwerten.

Meine BErechnung ergibt (mit einfachem Einsetzen der Werte)

Yz = dy + sc * (-rotz * Xq + 1 * Yq + rotx * Zq)
= -81,35 + 0,99999018 *(-30,05872418 + 585190,932 + 33,68306038)
= 585107,46

Vielleicht kannst du die Zeile deiner Office berechnung hier mit Zahlen mal aufzeigen.

Das wäre nett.

Mfg Werner

Hallo Werner,
aufgelöst hast du schon richtig. Du hast nur einen Vorzeichenfehler drin:
-rotz * Xq = - (-7.07 * 10^-6)*4251587.5791 = 30,05872418

Nun zur Erklärung der Matrix. Ich interpretier jetz mal ein bißchen was rein. 100%-ig sicher bin ich mir da nicht. Aber vielleicht kriegst du dadurch ja noch ne Reaktion von anderer Seite.

Bei diesen Helmert-Transformationen hat man kleine Drehwinkel und große Entfernungen der Objekte zu den Drehachsen vorliegen. Anstatt nun jeweils Cosinuswerte, die sehr nahe bei 1 sind, und Sinuswerte, die fast 0 sind, zu berechnen und dadurch sehr anfällig für Rundungsfehler und Rechenungenauigkeiten wird, die sich schnell zu großen Abweichungen aufwiegeln können (schlecht konditionierte Matrix, nennt man das), ist es sinnvoller, die direkte Auswirkung der einzelnen Koordinaten zu betrachten. Am Beispiel der X-Koordinate bedeutet das:

X = Xq + rotz * Yq - roty * Zq

Die Rotation um die x-Achse lässt die X-Koordinate gleich --> Erster Summand Xq

Die Rotation um die z-Achse hat desto höheren Einfluss auf die X-Koordinate je weiter der Punkt von der x-z-Ebene entfernt ist, d.h. je größer die y-Koordinate ist --> Summand rotz*Yq

Analog hat die Rotation um die y-Achse desto höheren Einfluss auf die X-Koordinate je weiter der Punkt von der x-y-Ebene entfernt ist, d.h. je größer die z-Koordinate ist --> Summand -roty*Zq

Vielleicht einfach mal räumlich vorstellen.

Und wie gesagt, ich bin gespannt, ob mir jemand widerspricht *g*

Viele Grüße,
Regina

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

du schon wieder!? :wink:
Hallo Werner,

das ist doch garnicht so schwierig. Schau dir doch mal den Post von Regina an, den sie vor etwa einem halben Jahr gemacht hat, da stand alles drin was du wissen musst. Oder nimm dir mal die pdf-Datei die ich dir geschickt habe. Da stand auch alles drin, alles ausmultipliziert und du musst nur noch die Zahlen einsetzen.

Gruß x303

Hi ihr,
vielen Dank für die Infos und das Hintergrundwissen dazu.
Jetzt stimmt das Ergebnis.

mfg Werner