2d-array spiegeln



  • hallo,
    müsste ein 2 dimensionales array [x-achse][y-achse] spiegeln.
    eine prozedur die mir das array um die x-achse spiegelt.
    und eine die mirs um die y-achse spiegelt...

    wie geh ich das am besten an?

    hab mir gedacht spiegeln um die x-achse mach ich so

    int m = m_height+2;
    	for(int y = 0; y < m_height; y++){
    		m-=2;
    		for(int x = 0; x < m_width; x++){
    			uint8_t tmp = data[x][y];
    			data[x][y] = data[x][y + m];
    			data[x][y+m] = tmp;
    		}
    	}
    

    bringt aber leider nicht das richtige ergebnis ... 😕



  • Könnte es sein, dass du wieder zurückspiegelst? 😉

    Ich würde nur bis in die Mitte laufen. Zudem kannst du für den Tausch die Funktion std::swap der Standardbibliothek benutzen. Eine Möglichkeit wäre die Folgende, du müsstest sie vielleicht noch etwas zurechtschneiden:

    for (int x = 0; x < Width/2; ++x)
    	for (int y = 0; y < Height; ++y)
    		std::swap(Array[x][y], Array[Width-1-x][y]);
    

    Analog zur anderen Achse.


Anmelden zum Antworten