Merhaba arkadaşlar bu yazımda sizlerle opengl ile nasıl nokta ve doğru çizilir onu anlatacağım.Projelerimde visual studio 2016 sürümde c++ eklentisini kullandım projeyi oluştururken “Freeglut” ve “glew” kütüphanelerini ekledim.Bu iki kütüphane ücretsiz olarak dağıtılmıştır.Bu kütüphanelerin visual studio ya nasıl ekleneceğini https://www.youtube.com/watch?v=8p76pJsUP44&t=234s burdan izleyebilirsiniz.Gerekli kurulumlar ve basit bir kodun çalıştırılması videoda anlatılmıştır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
#include <Windows.h> #include<GL\glew.h> #include <iostream> #include <GL\freeglut.h> void init2D(float r, float g, float b) { glClearColor(1.0, 1.0, 0.0, 0.0); glMatrixMode(GL_PROJECTION); gluOrtho2D(0.0, 200.0, 0.0, 150.0); } void display(void) { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0, 0.0, 0.0); glPointSize(10.0f); glBegin(GL_POINTS); glVertex2i(25, 50); glVertex2i(75, 100); glVertex2i(125, 150); glEnd(); glBegin(GL_LINES); glVertex2i(180, 15); glVertex2i(10, 145); glEnd(); glFlush(); } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowPosition(500, 500); glutInitWindowSize(400, 300); glutCreateWindow("hasim ilk ders"); init2D(0.0, 0.0, 0.0); glutDisplayFunc(display); glutMainLoop(); return 0; } |
C++ ile grafik tasarımı yaparken önemli olan iki adım vardır bunlardan birincisi ekrana çizdirmek istediğiniz nesneyi oluşturacak fonksiyonun yazılması diğeri ise “main” olan ana kodblogudur.Display fonksiyonunu yazarak nesnemizi oluşturabiliriz. Bu programda 3 nokta ve 1 doğru çizdim. Freeglut kütüphanesindeki hazır fonksiyonlardan olan glBegin fonksiyonunun içine ekrana bastıracağımız doğru için “gl_line” nokta için gl_point tanımlarını yaptık.Daha sonra noktanın x ve y ekseni üzerindeki koordinatlarını tanımladık.Doğru içinse başlangıç ve bitiş noktalarını belirledik. Daha sonra glEnd ile glBegin fonksiyonunu bitirdik. Gerekli işlemleri yapyıktan sonra Display fonksiyonun main de çağırıp programımızı çalıştırabiliriz.