Sonuçlar 1 to 5 of 5

Konu: ViewPorts (C++)

  1. #1

    Default ViewPorts (C++)

    Pencereyi 4 parçaya bölüp farklı açılardan nesne izleme örneği.

    Kod:
    #include"gl/glut.h"
    #include<stdlib.h>
    using namespace std;
    
    int pencere_en=400, pencere_boy=400; //program pencere boyutlar&#253;
    float aci=0;
    float RGB[3]={1,0,0}; //k&#253;rm&#253;z&#253;
    
    bool dur=false;
    
    void ayarlar(void)
    {
    	glClearColor(0.0,0.0,0.0,0.0);
    	glShadeModel(GL_FLAT);
        glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);	
    }
    
    void don(void)
    {
         if(!dur) aci+=0.5;
         glutPostRedisplay();
    }
    void teapot(void){
        
        glPushMatrix();    
           don();
           glRotatef(aci, 0,1,0 );                   
           glColor3f(RGB[0],RGB[1],RGB[2]);
           glutWireTeapot(30);    	
    	glPopMatrix();
    }
    void eksenler(void){
         glColor3f(1.0, 1.0, 1.0 );
         glBegin(GL_LINES);
           glVertex3f(-1,0,0);
           glVertex3f(1,0,0);
           glVertex3f(0,-1,0);
           glVertex3f(0,1,0);
         glEnd();
    }
    void goster(void)
    {   
        glLoadIdentity();
    	glViewport(0,0, pencere_en,pencere_boy);
        glClear(GL_COLOR_BUFFER_BIT);
        eksenler();
            
        //         SOL ALT PENCERE
        glPushMatrix();
           glLoadIdentity();
           gluLookAt(0,60,-100, 0,0,0,  0,1,0 );            
           
           glViewport(0,0, pencere_en/2, pencere_boy/2 );
           teapot();
        glPopMatrix();
        
        //         SOL ÜST PENCERE
        glPushMatrix();
           glLoadIdentity();
           gluLookAt(0,100,0, 0,0,0,  0,0,1 );            
           
           glViewport(0,pencere_boy/2, pencere_en/2, pencere_boy/2 );
           teapot();
        glPopMatrix();
        
        //         SA&#208; ÜST PENCERE
        glPushMatrix();
           glLoadIdentity();
           gluLookAt(0,90,-60, 0,0,0,  0,1,0 );            
           
           glViewport(pencere_en/2,pencere_boy/2, pencere_en/2, pencere_boy/2 );
           teapot();
        glPopMatrix();
        
        //         SA&#208; ALT PENCERE
    
        glPushMatrix();
           glLoadIdentity();
           gluLookAt(0,0,-100, 0,0,0,  0,1,0 );            
           
           glViewport(pencere_en/2,0, pencere_en/2, pencere_boy/2 );
           teapot();
        glPopMatrix();
    	
        
    	
        glutSwapBuffers();
    }
    
    
    
    void pencere(int en, int boy )
    {
         pencere_en=en;
         pencere_boy=boy;
         glViewport(0,0,pencere_en,pencere_boy);
         glMatrixMode(GL_PROJECTION);
         glLoadIdentity();
         gluPerspective(90, (float)pencere_en/(float)pencere_boy, 0, 100 );
         glMatrixMode(GL_MODELVIEW);
         glLoadIdentity();
         glutPostRedisplay();
    }
    
    void klavye(int dugme, int x,int y)
    {
         switch(dugme){
                      
         }
    }
    void klavye(unsigned char key,int x, int y){
           switch(key){
                       case 27: exit(1); break;
                       case 'p': case 'P': dur=!dur; glutPostRedisplay(); break;
           }     
    }
    
    
    int main(int argc,char ** argv)
    {
    	glutInit(&argc,argv);
    	glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
    	glutInitWindowPosition(0,0);
    	glutInitWindowSize(pencere_en,pencere_boy);
    	glutCreateWindow("Deneme");
    
        ayarlar();
    
    	glutDisplayFunc(goster);
    	glutReshapeFunc(pencere);
    	glutKeyboardFunc(klavye);
    	glutSpecialFunc(klavye);
    	
    	glutFullScreen();
    	
    	glutMainLoop();
    	return 0;
    }

  2. #2

  3. #3

  4. #4

  5. #5

    Default

    güzel bir çalışma olmuş.emeğine sağlık.teşekkürler paylaşımın için

Tags for this Thread

Bookmarks

Gönderme izinleri

  • Yeni Konu açamazsınız
  • Konulara cevap yazamazsınız.
  • Eklenti gönderemezsiniz.
  • Mesajlarınızı düzenleme izniniz yok.
  •