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.