Sourcecodes - Funktion für die Größe von Texturen als 2er Potenz

Sprachenübersicht/C / C++/ C#/Spieleprogrammierung/DirectX

Funktion für die Größe von Texturen als 2er Potenz

Diese Seite wurde 1815 mal aufgerufen.

Dieser Artikel wurde in einem Wikiweb System geschrieben, das heißt, Sie können die Artikel jederzeit editieren, wenn Sie einen Fehler gefunden haben, oder etwas hinzufügen wollen.

Editieren Versionen Linkpartnerschaft Bottom Printversion

Keywords: 2er Potenz, logarithmus

Diese Funktion prüft, ob die Texturengröße eine 2er Potenz ist, wenn nicht gibt es einen Fehler aus, weiter unten wird sie angepasst.

Code:


#include <iostream> 
#include <cmath> 

int Logarithmus2(int iNumber)  
{  
    int iLog = 0;  
    int iPow = 1; 

    while(iNumber >= iPow)  
    {  
        iPow *= 2; 
        iLog++;  
    }  

    return iLog - 1;  


int main() 


    int iWidth    = 0; 
    int iHeight    = 0; 
    int iSize    = 0; 

    std::cout << "Laenge: "; 
    std::cin >> iWidth; 

    std::cout << "\nBreite: "; 
    std::cin >> iHeight; 

    //Gibt einen Fehler aus, wenn beide größen nicht gleich groß, oder keine 2er Potenz sind 
    if((iWidth == pow(2,Logarithmus2(iWidth))) && (iHeight == pow(2,Logarithmus2(iHeight))) && (iWidth == iHeight)) 
        std::cout << "Ok"; 
    else 
        std::cout << "Error"; 

    //Passt sie an 
    if(Logarithmus2(iWidth) < Logarithmus2(iHeight)) 
        iSize = pow(2,Logarithmus2(iWidth)); 
    else iSize = pow(2,Logarithmus2(iHeight)); 

    std::cout << std::endl << "Neue Groesse " << iSize << " * " << iSize << std::endl; 

    return 0; 
}



Einfacher als das wäre aber folgende Funktion die eine n^2 grösse zurückgibt:

Code:

int powerof2(int currentsize)
{
  int i=1;
  while(i<currentsize) i*=2;
  return i;
}

Gibt es noch irgendwelche Fragen, oder wollen Sie über den Artikel diskutieren?

Editieren Versionen Linkpartnerschaft Top Printversion

Haben Sie einen Fehler gefunden? Dann klicken Sie doch auf Editieren, und beheben den Fehler, keine Angst, Sie können nichts zerstören, der Artikel kann wiederhergestellt werden.

Sprachenübersicht/C / C++/ C#/Spieleprogrammierung/DirectX/Funktion für die Größe von Texturen als 2er Potenz