//--------------------------------------------------------------------- // Ukazkovy priklad k serii clanku OpenGL a GLU // // Autor: Pavel Tisnovsky // Cislo clanku: 10 // Cislo prikladu: 3 // // Zobrazeni prubehu funkce b2() pomoci lomene cary. // Pomoci klavesy 'f' lze provest prepnuti do celeho okna, klavesou 'w' // se provede nastaveni puvodni velikosti okna, tj. 450x450 pixelu. // Klavesou ESC je mozne program ukoncit. //--------------------------------------------------------------------- #include #include #include #define WINDOW_WIDTH 450 // velikost okna #define WINDOW_HEIGHT 600 #define WINDOW_TITLE "OpenGL a GLU, priklad 10.3" // titulek okna // bazove funkce float b0(const float t, const int i); float b1(const float t, const int i); float b2(const float t, const int i); float b3(const float t, const int i); #define MAX 6 // x-ove souradnice ridicich bodu float x[MAX]={000,000,100,100,200,300}; // y-ove souradnice ridicich bodu float y[MAX]={000,100,100,000,000,100}; // uzlovy vektor float knot[]={0,0,0,1,2,3,4,4,4}; //--------------------------------------------------------------------- // Bazova funkce b0() //--------------------------------------------------------------------- float b0(const float t, const int i) { float p; if ((knot[i]<=t)&&(t='A' && key<='Z') // uprava velkych pismen na mala key+=(unsigned char)('a'-'A'); // pro zjednoduseni prikazu switch switch (key) { case 27: exit(0); break; // ukonceni aplikace case 'q': exit(0); break; // ukonceni aplikace case 'f': glutFullScreen(); break; // prepnuti na celou obrazovku case 'w': glutReshapeWindow(WINDOW_WIDTH, WINDOW_HEIGHT); break; default: break; } } #ifdef __BORLANDC__ #pragma option -w+par #endif //--------------------------------------------------------------------- // Hlavni funkce konzolove aplikace //--------------------------------------------------------------------- int main(int argc, char** argv) { glutInit(&argc, argv); // inicializace knihovny GLUT glutInitDisplayMode(GLUT_RGB); // nastaveni dvou barvovych bufferu a pameti hloubky glutInitWindowPosition(30, 30); // pocatecni pozice leveho horniho rohu okna glutInitWindowSize(WINDOW_WIDTH, WINDOW_HEIGHT);// pocatecni velikost okna glutCreateWindow(WINDOW_TITLE); // vytvoreni okna pro kresleni glutDisplayFunc(onDisplay); // registrace funkce volane pri prekreslovani okna glutReshapeFunc(onResize); // registrace funkce volane pri zmene velikosti okna glutKeyboardFunc(onKeyboard); // registrace funkce volane pri stlaceni klavesy onInit(); // inicializace vykreslovani glutMainLoop(); // nekonecna smycka, kde se volaji zaregistrovane funkce return 0; // navratova hodnota vracena operacnimu systemu } //--------------------------------------------------------------------- // Konec zdrojoveho souboru //---------------------------------------------------------------------