#include<GL/glut.h> void pencere(void) { glClearColor(1.0,1.0,1.0,1.0); glClear(GL_COLOR_BUFFER_BIT); glLineWidth(1);//çizgi kalınlıgı glPushAttrib (GL_LINE_BIT); /*glPushAttrib fonsiyonundaki parametrede yıgımlarda saklanacak tipi belirlemektedir şuan LINE glLineWidth parametresinde belilenen degerden başba bir deger almamıştır,alınan degerler yıgında saklanacaktır */ glLineWidth (5);// glLineWidth degeri degiştiriliyor glLineStipple (3, 0xff);// çizgi kesik kesik hale getiriliyor glEnable(GL_LINE_STIPPLE);//glLineStipple aktif glBegin (GL_LINES);//çizgi çiziliyor glColor3f(1.0,0.0,0.0);// iki çizim arasındaki fark anlaşılsın diye ilk renk kırmızı glVertex2f (0.4,0.4); glVertex2f (-0.4,0.4); glVertex2f (-0.6,-0.1); glVertex2f (-0.2,-0.4); glEnd (); glPopAttrib (); /*glPushAttrib teki degerler geri cagrılıyor ,glPopAttrib ten sonraki kodlara yukarıdaki degerler artık etki etmeyecektir çünki, glPushAttrib ve glPopAttrib arasında belirlenen tipe göre bilgiler yıgınlarda saklanır ve glPopAttrib ten sonra serbest bırakılır*/ glColor3f(0.0,0.0,1.0);//ikinci çizim belirginligi için mavi renk tanımlanıyor // glPushAttrib e kadar belirlenen özellikler etkindir. glBegin (GL_LINES); glVertex2f (0.3,0.3); glVertex2f (-0.3,0.3); glVertex2f (-0.5,-0.2); glVertex2f (-0.1,-0.3); glEnd (); glFlush(); } int main(int argcp,char **argcv) { glutInit(&argcp,argcv); glutInitDisplayMode(GLUT_SINGLE); glutInitWindowPosition(100, 200); glutInitWindowSize(300,200); glutCreateWindow("OpenGLTurk"); glutDisplayFunc(pencere); glutMainLoop(); return 0; }
16 Nisan 2014 Çarşamba
Öznitelikler(glPushAttrib, glPopAttrib)
Öznitelikler(glPushAttrib, glPopAttrib)
Poligon detayları(glPolygonStipple)
Poligon detayları(glPolygonStipple)
#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) { GLubyte fly[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x01, 0xC0, 0x06, 0xC0, 0x03, 0x60, 0x04, 0x60, 0x06, 0x20, 0x04, 0x30, 0x0C, 0x20, 0x04, 0x18, 0x18, 0x20, 0x04, 0x0C, 0x30, 0x20, 0x04, 0x06, 0x60, 0x20, 0x44, 0x03, 0xC0, 0x22, 0x44, 0x01, 0x80, 0x22, 0x44, 0x01, 0x80, 0x22, 0x44, 0x01, 0x80, 0x22, 0x44, 0x01, 0x80, 0x22, 0x44, 0x01, 0x80, 0x22, 0x44, 0x01, 0x80, 0x22, 0x66, 0x01, 0x80, 0x66, 0x33, 0x01, 0x80, 0xCC, 0x19, 0x81, 0x81, 0x98, 0x0C, 0xC1, 0x83, 0x30, 0x07, 0xe1, 0x87, 0xe0, 0x03, 0x3f, 0xfc, 0xc0, 0x03, 0x31, 0x8c, 0xc0, 0x03, 0x33, 0xcc, 0xc0, 0x06, 0x64, 0x26, 0x60, 0x0c, 0xcc, 0x33, 0x30, 0x18, 0xcc, 0x33, 0x18, 0x10, 0xc4, 0x23, 0x08, 0x10, 0x63, 0xC6, 0x08, 0x10, 0x30, 0x0c, 0x08, 0x10, 0x18, 0x18, 0x08, 0x10, 0x00, 0x00, 0x08}; //çizimde kullanılacak fly dizisi tanımlanıyor GLubyte halftone[] = { 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55}; //çizimde kullanılacak halftone dizisi tanımlanıyor glClearColor(1.0,1.0,1.0,1.0); glClear(GL_COLOR_BUFFER_BIT); glEnable(GL_POLYGON_STIPPLE); //glPolygonStipple kullanımı aktif duruma getiriliyor glPolygonStipple(fly); /*glPolygonStipple fonksiyonu çizimi fly dizisi ile yapmaktadır dizi hex sayısistemi içerir*/ glViewport(0,0,180,180);//sol kare(); //glPolygonStipple çizimi yapılacak yuzey kare yuzeyi glPolygonStipple(halftone); /*glPolygonStipple fonksiyonu çizimi halftone dizisi ile yapmaktadır dizi hex sayısistemi içerir*/ glViewport(100,0,180,180);// sag kare(); //glPolygonStipple çizimi yapılacak yuzey kare yuzeyi glDisable(GL_POLYGON_STIPPLE);//glPolygonStipple pasifleştiriyor 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; }
Yüzeylerin Secimi(glCullFace)
Yüzeylerin Secimi(glCullFace)
#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); /* GL_CW :saat yönünde çizim GLCCW :saatin tersi yönünde çizim */ glCullFace(GL_BACK);//ters(arka yuz) çizimler pasifleştiriliyor glEnable(GL_CULL_FACE); glPolygonMode(GL_FRONT, GL_LINE); glFrontFace(GL_CW);//GL_LINE saat yönude arka yuzde görünecektir glViewport(0,0,180,180);//sol alt kare(); //çizim glFrontFace(GL_CCW) ön yuzun çizim gercekleştigi için çizimn görünmektedir. glPolygonMode(GL_FRONT, GL_LINE); glFrontFace(GL_CCW);//GL_LINE saatin tersi yönünde ön yuzde görünecektir glViewport(100,0,180,180);// sag alt kare(); 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; }
Yüzeylerin Secimi(glFrontFace)
Yüzeylerin Secimi(glFrontFace)
#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); /* GL_CW :saat yönünde çizim GLCCW :saatin tersi yönünde çizim */ glPolygonMode(GL_FRONT, GL_LINE); glFrontFace(GL_CW);//GL_LINE arka yuzde görünecektir glViewport(0,0,180,180);//sol alt kare(); glPolygonMode(GL_FRONT, GL_LINE); glFrontFace(GL_CCW);//GL_LINE ön yuzde görünecektir glViewport(100,0,180,180);// sag alt kare(); 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; }
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; }
Çizgi detayları(glLineStipple)
Çizgi detayları(glLineStipple)
#include<gl/glut.h> void pencere(void) { glClearColor(1.0,1.0,1.0,1.0); glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.0,0.0,1.0); /*glEnable fonksiyonu ile LineStipple fonksiyonunun kullanımı aktif duruma getiriliyor*/ glEnable(GL_LINE_STIPPLE); glLineStipple(2, 0x00FF); /*LineStipple nin ilk parametresi (2) tam sayı tipinde deger almaktadır.(0x00FF)Parametresi 16 lık sayı sistemi düzeninde bir deger alır,parametrede sadece 1 bit degeri işlenir 0 bitler boş gecilmektedir ,fonksiyonun ilk parametresi ile genişletilerek çizim yapılmaktadır. */ glBegin(GL_LINES); glVertex2f(0.8,0.0); glVertex2f(-0.8,0.0); glEnd(); glDisable(GL_LINE_STIPPLE); glFlush(); } int main(int argcp,char **argcv) { glutInit(&argcp,argcv); glutInitDisplayMode(GLUT_SINGLE); glutInitWindowPosition(100, 200); glutInitWindowSize(225,180); glutCreateWindow("OpenGLTurk"); glutDisplayFunc(pencere); glutMainLoop(); return 0; }
Poligon Modifikasyon(flags)
Poligon Modifikasyon(flags)
#include<GL/glut.h> void pencere(void) { glClearColor(1.0,1.0,1.0,0.0); glClear(GL_COLOR_BUFFER_BIT); //çizim modu belirleniyor glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); glColor3f(0.0,0.0,1.0); glBegin(GL_POLYGON); glEdgeFlag(GL_TRUE);//çizimden etkilenecek vertexler ayarlanıyor glVertex2f(0.4,0.4); glEdgeFlag(GL_FALSE);//çizimden etkilenecek vertexler ayarlanıyor glVertex2f(-0.4,0.4); glEdgeFlag(GL_TRUE);//çizimden etkilenecek vertexler ayarlanıyor glVertex2f(-0.4,-0.4); glEdgeFlag(GL_FALSE);//çizimden etkilenecek vertexler ayarlanıyor glVertex2f(0.4,-0.4); glEnd(); glFlush(); } int main(int argcp,char **argcv) { glutInit(&argcp,argcv); glutInitDisplayMode(GLUT_SINGLE); glutInitWindowPosition(0, 0); glutInitWindowSize(225, 180); glutCreateWindow("OpenGLTurk"); glutDisplayFunc(pencere); glutMainLoop(); return 0; }
Kaydol:
Kayıtlar (Atom)