Zuordnung von Dimensionen



  • Moin.

    Erstmal die Basics. Ich habe ein 2-dimensionales Bild in einem 3-dimensionalen Koordinatensystem. Hab das mal versucht grafisch zu verdeutlichen:

    y|
          |
          |
          |
          |
          |
          |__________________
          /                   x
         /    _____(0,0)
        /    /    / 
       /    /    / xb
      /   /____/
    z/      yb
    

    Wie man sieht liegt das Bild in diesem Beispiel in der x-z-Ebene. xb ist die x-Richtung und yb die y-Richtung des Bildes. (0,0) ist der Koordinatenursprung.

    Nun muss ich in C++ irgendwie hinterlegen, welche Achse des Bildes in welcher Richtung des Koordinatensystems liegt.

    In diesem Beispiel wäre das so eine Zuordnung:
    xb = z;
    yb = -x;

    Nun frage ich mich, wie ich diesen Sachverhalt am günstigsten in C++ hinterlegen kann.



  • Du musst nur die Punkte, vom Ursprung im Uhrzeigersinn, durchgehen und jeweils die zwei Punkte subtrahieren die eine Seite bilden. Dann bekommst du Werte <, > oder gleich 0 für die Achsen die deine Ebene aufspannen.
    Du weißt ja auf welcher Ebene dein Bild liegt, die Zuordnung sollte dann kein Problem sein.

    grüße



  • David_pb schrieb:

    Du weißt ja auf welcher Ebene dein Bild liegt

    Genau liegt der Knackpunkt. Was nehm ich für ne Struktur/Variable/Klasse/... um diese Information zu hinterlegen?

    Mein Programm wird später nur die Zuordnung der Koordinatensystem-Achsen zu den Bild-Achsen kennen, sowie die Bilddaten (Auflösung, x, y). Und ich kenne ich die Koordinate des Bildmittelpunkts im Koordinatensystem (x,y,z).

    Der Sinn dahinter ist, dass ich für jeden Pixel im Bild, dessen absolute Position im Koordinatensystem zurückgeben kann. Die Berechnung ist wie gesagt nicht das Problem.



  • Hi!

    enum PlaneType
    {
      TYP_XY,
      TYP_YZ,
      TYP_XZ
    };
    

    Deine Klasse hat dann eine Variable von entsprechendem Typ. Wenn du die Position den Nullpunkts im R3 kennst kannst du ja einfach prüfen welche Achse den Wert 0 hat. Probleme bekommst du nur wenn zwei Achsen 0 Werte haben oder der Ursprungspunkt gar im Ursprung von deinem R3 liegt.

    grüße


Anmelden zum Antworten