SOLVED: Bestimmung der Transformation eines starren Körpers

In diesem Forum Fragen und Diskussionen in Deutsch
Forum rules
Foren-Regeln und hilfreiche Informationen

WICHTIG: Bitte zuerst lesen, bevor Sie posten
Post Reply
ConneR
Posts: 32
Joined: Fri Sep 28, 2018 12:14 pm

SOLVED: Bestimmung der Transformation eines starren Körpers

Post by ConneR »

Hallo,

angenommen ich habe einen starren Körper, der über >3 Punkte definiert ist.
Angenommen, ich kenne die Positionen dieser >3 Punkte zu 2 Zeitpunkten und diese unterscheiden sich.

Gibt es innerhalb von FreeCAD (insbesondere auf C++-Ebene) eine Methode an die Translation und Rotation zu kommen?

Ich weiß, dass es innerhalb von VTK (mindestens) einen ICP Algorithmus gibt, würde aber gerne darauf verzichten so "tief" zu graben...
Last edited by ConneR on Wed Feb 13, 2019 1:15 pm, edited 1 time in total.
User avatar
microelly2
Veteran
Posts: 4688
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: Bestimmung der Transformation eines starren Körpers

Post by microelly2 »

Du kannst aus den 3 Punkten einen vierten bilden, welche dann ein Koordinatensystem bilden: p2-p1, p3-p1 (p2-p1).cross(p3-p1)
Die 9 Koordianten von diesen Punktenb schreibst du in ein FreeCAD.Rotation Objekt. Damit hast du die Drehung, die Verschiebung ist einfach p1.
ConneR
Posts: 32
Joined: Fri Sep 28, 2018 12:14 pm

Re: Bestimmung der Transformation eines starren Körpers

Post by ConneR »

Habe mittlerweile die Lösung via vtkLandmarkTransform implementiert - bietet den Vorteil, dass (wie in meiner Anwendung nötig) ggf auch mehr als 3 Punkte als 'Landmarks' genutzt werden können.

Dennoch vielen Dank für den Hinweis!
Post Reply