Hallo zusammen,
ich versuche mittels VB-Journal in einem Assambly Komponenten über Koordinatensysteme auszurichten und zu verschieben. Es sollen die Koordinatensysteme welche in den Komponenten beinhaltet sind genau übereinander liegen.
Die Verschiebung habe ich hinbekommen indem ich die Positionen der Komponenten und die Positionen der beinhaltenden Koordinatensysteme ermittelt und verrechnet habe.
Das sieht auszugsweise folgendermaßen aus:
Dim Komponente1Position As Point3d
Dim Komponente1Matrix As Matrix3x3
component1.GetPosition(Komponente1Position, Komponente1Matrix)
Dim Offset1_X, Offset1_Y, Offset1_Z As Double
Offset1_X = cartesianCoordinateSystem1.Origin.X + Komponente1Position.X
Offset1_Y = cartesianCoordinateSystem1.Origin.Y + Komponente1Position.Y
Offset1_Z = cartesianCoordinateSystem1.Origin.Z + Komponente1Position.Z
Dim Komponente2Position As Point3d
Dim Komponente2Matrix As Matrix3x3
component2.GetPosition(Komponente2Position, Komponente2Matrix)
Dim Offset2_X, Offset2_Y, Offset2_Z As Double
Offset2_X = cartesianCoordinateSystem2.Origin.X + Komponente2Position.X
Offset2_Y = cartesianCoordinateSystem2.Origin.Y + Komponente2Position.Y
Offset2_Z = cartesianCoordinateSystem2.Origin.Z + Komponente2Position.Z
Dim TransX, TransY, TransZ As Double
TransX = Offset1_X + Offset2_X
TransY = Offset1_Y + Offset2_Y
TransZ = Offset1_Z + Offset2_Z
Dim translation1 As Vector3d = New Vector3d(TransX, TransY, TransZ)
Fehlen tut mir jetzt noch die Rotation als Matrix3x3.
Dim rotation1 As Matrix3x3
Muss ich die vier Matrizen jetzt verrechnen um die resultierende Rotation zu bekommen oder gibt es Grundsätzlich einen einfacheren Lösungsweg? Und wenn ich sie verrechnen muss, hat mir jemand ein Beispiel, dass mir auf die Sprünge hilft, da dies Neuland für mich ist.
Danke schonmal für die Antworten.
Gruß
Stefan
------------------
www.sr-web.eu
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP