OpenGl-2

Yayınlandı: Mart 20, 2011 / C++, OPEN LİBRARY
Etiketler:,

Arkadaşlar bu örneğimiz ile bir cisme x y düzleminde klavye yön tuşları ile hareket ettiriyoruz Buyrun : )

Bu arada bi hata ile karşılaşırsanız şu makaledeki adımları uygulayın(OPEBGL KURULUM)
#include “stdafx.h”

#include <GL/glut.h>

float xgotur = 0, ygotur = 0, zgotur = 0;
float derece = 0;
float xolcu  = 1, yolcu = 1, zolcu = 1;
int en = 400,boy = 400;

void GoturSag(void)
{

glLoadIdentity();

xgotur += 0.1;
}

void GoturSol(void)
{

glLoadIdentity();

xgotur -= 0.1;
}

void GoturYuk(void)
{

glLoadIdentity();

ygotur += 0.1;
}

void GoturAsa(void)
{

glLoadIdentity();

ygotur-=0.1;
}

void GoturIleri(void)
{

glLoadIdentity();

zgotur -= 0.1;
}

void GoturGeri(void)
{

glLoadIdentity();

zgotur += 0.1;
}

void YanUzat(void)
{

glLoadIdentity();

xolcu += 0.1;
}

void BoyUzat(void)
{

glLoadIdentity();

yolcu += 0.1;
}

void CevirSag(void)
{

glLoadIdentity();

derece += 0.5;
}

void CevirSol(void)
{

glLoadIdentity();

derece -= 0.5;
}

void Basla(void)
{

glClearColor (0.0, 0.0, 0.0, 0.0);

glShadeModel (GL_FLAT);

glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
}

void Klavye(int dugme, int x, int y)
{

switch(dugme)
{
case GLUT_KEY_LEFT:GoturSol(); break;
case GLUT_KEY_RIGHT:GoturSag(); break;
case GLUT_KEY_UP:GoturYuk(); break;
case GLUT_KEY_DOWN:GoturAsa(); break;
case GLUT_KEY_PAGE_UP:GoturIleri(); break;
case GLUT_KEY_PAGE_DOWN:GoturGeri(); break;
}

glutPostRedisplay();
}

void Klavye(unsigned char dugme, int x, int y)
{

switch(dugme)
{
case ‘a’:YanUzat();break;
case ‘s’:BoyUzat();break;
case ‘z’:CevirSol();break;
case ‘x’:CevirSag();break;
}

glutPostRedisplay();
}

void UcdCokgen(void)
{

glPushMatrix();

glColor3f(1.0, 0.0, 0.0);

glTranslatef(xgotur,ygotur,zgotur);

glRotatef(derece, 0.0, 1.0, 0.0);

glScalef(xolcu, yolcu, zolcu);

glBegin(GL_QUADS);

glVertex3f(-0.4, 0.3, 0.1); //önyüz
glVertex3f( 0.4, 0.3, 0.1);
glVertex3f( 0.4, -0.3, 0.1);
glVertex3f(-0.4, -0.3, 0.1);

glEnd();

glBegin(GL_QUADS);

glVertex3f(-0.4, 0.3, -0.1); //solyanyüz
glVertex3f(-0.4, 0.3, 0.1);
glVertex3f(-0.4,-0.3, 0.1);
glVertex3f(-0.4,-0.3, -0.1);

glEnd();

glBegin(GL_QUADS);

glVertex3f(-0.4, 0.3, -0.1); //arkayüz
glVertex3f( 0.4, 0.3, -0.1);
glVertex3f( 0.4, -0.3, -0.1);
glVertex3f(-0.4, -0.3, -0.1);

glEnd();

glBegin(GL_QUADS);

glVertex3f(0.4, 0.3, -0.1); //sağyanyüz
glVertex3f(0.4, 0.3, 0.1);
glVertex3f(0.4, -0.3, 0.1);
glVertex3f(0.4, -0.3, -0.1);

glEnd();

glBegin(GL_QUADS);

glVertex3f(-0.4, 0.3, 0.1); //üstkapak
glVertex3f( 0.4, 0.3, 0.1);
glVertex3f( 0.4, 0.3, -0.1);
glVertex3f(-0.4, 0.3, -0.1);

glEnd();

glBegin(GL_QUADS);

glVertex3f( 0.4, -0.3, 0.1); //altkapak
glVertex3f(-0.4, -0.3, 0.1);
glVertex3f(-0.4, -0.3, -0.1);
glVertex3f( 0.4, -0.3, -0.1);

glEnd();

glPopMatrix();
}

void CizimYeri(void)
{
glClear(GL_COLOR_BUFFER_BIT);

glColor3f(1.0, 1.0, 1.0);

glLoadIdentity();

gluLookAt(0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);

UcdCokgen();

glutSwapBuffers();
}

void TekrarBoyut(int en, int boy)
{

glViewport (0, 0, en, boy);

glMatrixMode (GL_PROJECTION);

glLoadIdentity ();

gluPerspective(90, (float)en / (float)boy, 1.0, 100.0);

glMatrixMode (GL_MODELVIEW);
}

int main(int argc, char **argv)
{

glutInit(&argc, argv);

glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB);

glutInitWindowSize (en, boy);

glutInitWindowPosition (0, 0);

glutCreateWindow (“By bytcn”);

Basla();

glutReshapeFunc(TekrarBoyut);

glutDisplayFunc(CizimYeri);

glutSpecialFunc(Klavye);

glutKeyboardFunc(Klavye);

glutMainLoop();

return 0;
}

Kaynaklar

http://www.programlama.com

Reklamlar
yorum
  1. alcopone dedi ki:

    eline sağlık hafızzzzzzzz

  2. Mustafa Akgün dedi ki:

    Beytullah eline sağlık güzel olmuş:)

  3. bytcn dedi ki:

    Arkadaşlar copy peste iki hata veriyor onlar da tırnak hatası copyden oluyor by bytcn kısmını tekrar yazarsanız düzelir

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s