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.
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.
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)
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]
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.