Sonuçlar 1 to 3 of 3

Konu: Teapot (C++)

  1. #1

    Default Teapot (C++)

    3 boyutlu bir nesne için açısal dönme dönüşümünü gösteren bir openGL programı.


    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;
    float kamera_konum[3]={0,30,-100};
    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 goster(void)
    {   
    	glClear(GL_COLOR_BUFFER_BIT);
    	
        
        
        glLoadIdentity();
        gluLookAt(kamera_konum[0],kamera_konum[1],kamera_konum[2], 0,0,0,  0,1,0 );
        
        glColor3f(0,0.3,0.7);
    	glBegin(GL_QUADS);
            glVertex3f(-40,-30,-40);
            glVertex3f(-40,-30,40);
            glVertex3f(40,-30,40);
            glVertex3f(40,-30,-40);
        glEnd();	
        
        glPushMatrix();
        
        don();
        glRotatef(aci, 0,1,0 );
                   
        
        glColor3f(RGB[0],RGB[1],RGB[2]);
        glutWireTeapot(30);    	
    	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){
                      case GLUT_KEY_UP: kamera_konum[1]+=1; glutPostRedisplay(); break;
                      case GLUT_KEY_DOWN: kamera_konum[1]-=1; glutPostRedisplay(); break;
         }
    }
    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

    Default

    güzl payşlaşım ..saolasın

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.
  •