16 Nisan 2014 Çarşamba

Polygon detayları(glPolygonMode)

Polygon detayları(glPolygonMode)


#include<gl/glut.h>
void kare(void)
{
glColor3f(0.0,0.0,1.0);
glBegin(GL_POLYGON);
glVertex2f(0.4,0.4);
glVertex2f(-0.4,0.4);
glVertex2f(-0.4,-0.4);
glVertex2f(0.4,-0.4);       
glEnd();
}

void pencere(void)
{
glClearColor(1.0,1.0,1.0,1.0);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0,0.0,1.0);
glPointSize(3.0);
glPolygonMode(GL_FRONT, GL_LINE);
/*çizimde etkilenecek yuzey ve çizim şekli belirleniyor
fonksiyonda GL_FRONT ön yuz seçilmiş GL_LINE çizim şekli seçilmiş*/
glViewport(0,0,130,100);//sol alt 
kare();

glPolygonMode(GL_FRONT, GL_FILL);
/*çizimde etkilenecek yuzey ve çizim şekli belirleniyor
fonksiyonda GL_FRONT ön yuz seçilmiş GL_FILL çizim şekli seçilmiş
GL_FILL çizim şekli polygonun  içi dolu çizilmesini saglar
*/
glViewport(130,0,130,100);// sag alt
kare();

glPolygonMode(GL_FRONT_AND_BACK , GL_FILL);
/*çizimde etkilenecek yuzey ve çizim şekli belirleniyor
fonksiyonda GL_FRONT_AND_BACK hem ön hem arka yuz seçilmiştir
GL_FILL çizim şekli seçilmiş*/
glViewport(0,100,130,100);//üst sol
kare();

glPolygonMode(GL_FRONT, GL_POINT);
/*çizimde etkilenecek yuzey ve çizim şekli belirleniyor
fonksiyonda GL_FRONT ön yuz seçilmiş GL_POINT çizim şekli seçilmiş
GL_POINT çizim şekli vertex köşe noktalrını belirtir.*/
glViewport(130,100,130,100);//üst sag
kare();
/*çizimler de GL_FRONT ön yuz,GL_FRONT_AND_BACK ön ve arka yuz 
oldugu gibi sadece GL_BACK arka yuzde kullanıla bilir*/
glFlush();
}
int main(int argcp,char **argcv)
{
glutInit(&argcp,argcv);
glutInitDisplayMode(GLUT_SINGLE);
glutInitWindowPosition(100, 200);
glutInitWindowSize(260,200);
glutCreateWindow("OpenGLTurk");
glutDisplayFunc(pencere);
glutMainLoop();
return 0;
}

Hiç yorum yok:

Yorum Gönder