gmd Geschrieben 19. April 2023 Teilen Geschrieben 19. April 2023 Hallo, ich probiere diese frage mal hier. Moeglicherweise etwas breiteres publikum als in "Externe Schnittstelle", und ist ja auch allgemeiner. Gegeben sein ein kreisbogen (kein greisbogen ) als teil eines kreises mit radius r im 3d raum, mit den Euler-koordinaten p1 =(x1,y1,z1). Wir nehmen an dass w = 1 ist und das quaternion ist qu1 ={x1',y1',z1',1}, transformiert von den Euler-koordinaten . Wie berechne ich die transformationsmatrix qt, die den punkt p1 nach p2 = {x2,y2,z2} verschiebt und die ebene (gruen) parallel zum einheitsvektor r dreht. In 2D ist das einfach, in 3D habe ich problem die richtige matrizenoperationen zu finden. Ich verwende eine umfangreiche library, also operationen sind nicht das problem. Der ansatz fehlt mir. Man kann das problem ja zerlegen in transformation und rotation, so habe ich das in 2D mit einfachen winkelfunktionen geloest. Jede 3D engine tut das mit transform.around , aber ich habe keine ahnung mehr wie ich transform.around mit quaternions ausdruecke. Das war erstes semester mate und ist sehr lange her. Im web ist nichts konkretes zu finden, nur allgemeiner kram zu den grundlage und 3d engines, die das problem erledigen. Waere toll einen hinweis zu bekommen. Danks Gmd Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
HaNNoveraNer Geschrieben 19. April 2023 Teilen Geschrieben 19. April 2023 (bearbeitet) Guck mal auf tm-mathe.de bei 3D Transformationen. Da sind die Matrizen für die Translation und Rotation beschrieben. Bearbeitet 19. April 2023 von HaNNoveraNer Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
gmd Geschrieben 19. April 2023 Autor Teilen Geschrieben 19. April 2023 (bearbeitet) sorry, das sind genau solche seiten die "mir" bei diesem fall nicht helfen. Davon habe ich viele angeschaut. Aber danke fuer die antwort. Gruss Gmd Bearbeitet 19. April 2023 von gmd Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Neo Geschrieben 19. April 2023 Teilen Geschrieben 19. April 2023 Hallo gmd, mit Quaternions kannst du nur Drehungen beschreiben, keine Translationen. Ein "transform.around" arbeitet daher mehrstufig. Bilde z.B. einen Vektor von Punkt P1 zum Zentrum (dein Radialvektor). Diesen Vektor kannst du nun mit einer Quaternion drehen. Anschließend addierst du den gedrehten Vektor zum Zentrum hinzu und erhältst deinen finalen Punkt. Möchtest du lieber mit Matrizen arbeiten, musst du zwei Matrizen aufbauen und miteinander multiplizieren. Zunächst brauchst du eine Translationsmatrix entlang deines r, anschließend eine Rotationsmatrix. Multipliziere beide (auf die Reihenfolge achten) und du erhältst eine Matrix, mit der du beliebige Punkte entlang deines Kreisbogens transformieren kannst. Viele Grüße, Neo Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
gmd Geschrieben 19. April 2023 Autor Teilen Geschrieben 19. April 2023 Danke Neo, Ist ja sort of dein taeglich brot .. lol .. Letzteres ist worauf ich aus bin. Matrix operationen sind mit meiner library simple, man muss "nur" die matrizen formulieren. Ich muss mal frueher anfangen, abends wird mein hirn immer besonders langsam und ich ungeduldig.. insbesondere wenn man noch soviele andere ideen im kopf hat. Gruss Gmd Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen.
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden