Einzelnen Beitrag anzeigen

Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
711 Beiträge
 
Delphi XE5 Professional
 
#5

AW: Koordinatensystem addieren.

  Alt 21. Mär 2020, 19:46
Ich fasse Deine Aufgabenstellung mal mit meinen Worten zusammen:
Das eigene Koordinatensystem des Körpers K2 soll in das Koordinatensystem des Körpers K1 umgerechnet werden, damit alle Operationen in einem einheitlichen Koordinatensystem erfolgen können.
Das nennt man Koordinaten-Transformation. Laut Deiner Zeichnung handelt es sich lediglich um eine einfache Parallelverschiebung des Koordinatensystems (Translation) ohne Drehung.

Das läßt sich erst dann realisieren, wenn der Abstand zwischen den beiden Koordinatenursprüngen U1 und U2 bekannt ist. Hierbei mußt Du auch auf das Vorzeichen der Koordinaten achten! Für die Umrechnung gilt: verschoben wird immer das Koordinatensystem, NICHT das Objekt. Die zu transformierenden x-, y- und z - Koordinaten von Körper 2 lassen sich z.B. mit folgender Routine umrechnen:

Delphi-Quellcode:
Procedure Get_Punkt_Neu(CONST x, y, z,
                        Ursprung_Neu_Delta_X,
                        Ursprung_Neu_Delta_Y,
                        Ursprung_Neu_Delta_Z: Extended;
               VAR X_trans, Y_trans, Z_trans: Extended);
// Parallelverschiebung eines kartesischen Koordinatensystems
// _trans = Translation

Begin
  // verschoben wird immer das Koordinatensystem, NICHT das Objekt!!
  X_trans:= x - Ursprung_Neu_Delta_X;
  Y_trans:= y - Ursprung_Neu_Delta_Y;
  Z_trans:= z - Ursprung_Neu_Delta_Z;
End;
Viel Erfolg!
Gruß, Andreas
PS: Das ist nichts anderes als eine Vektor-Subtraktion.
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)

Geändert von Andreas13 (21. Mär 2020 um 19:58 Uhr)
  Mit Zitat antworten Zitat