سورس جا به جایی دایره با OpenGL
در این بخش سورس جا به جایی دایره با OpenGL را برای شما آماده کرده ایم که به زبان سی پلاس پلاس در محیط نرم افزار DevCpp ایجاد شده است. در ادامه می توانید توضیحات مربوط به پروژه را مشاهده کنید. همچنین فیلم و تصاویری از قسمت های مختلف پروژه نیز در انتها این بخش قرار داده ایم.
OpenGL چیست
OpenGL مخفف شده عبارت “Open source Graphic Library” به معنای کتابخانه گرافیکی متن باز می باشد و یک رابط برنامه نویسی نرم افزار چند سکویی به منظور رندرینگ دو بعدی و سه بعدی است. OpenGL محصولی پر استفاده و موفق از شرکت Silicon Graphic می باشد که به منظور شبیه سازی کارهای گرافیکی در سیستم های ویندوزی توسعه یافته است. از OpenGL برای ساخت بازی ها، نرم افزار های دو بعدی و سه بعدی و غیره استفاده می شود.
توضیحات پروژه
در این پروژه که به زبان C++ در نرم افزار DevC++ نسخه نوشته شده است، بعد از اجرا شدن، نرم افزار یک دایره بر روی صفحه نمایش رسم می کند و منتظر کاربر می ماند تا دکمه ای را فشار دهد. هنگامی که دکمه ای فشرده می شود، نرم افزار ورودی را بررسی می کند. اگر دکمه فلش سمت راست فشرده شود، نرم افزار دایره را به سمت راست حرکت می دهد و اگر دکمه فشرده شده، فلش سمت چپ باشد آن را به سمت چپ جا به جا می کند. برای درک بهتر عملکرد پروژه می توانید تصاویر و فیلمی که در انتهای این بخش قرار داده شده است را مشاهده کنید.
شما با مشاهده سورس کد این پروژه می توانید با چگونگی رسم دایره، تغییر رنگ قلم، تغییر مقیاس بوم و تشخیص کلیدهای کیبورد، جا به جایی اشیاء غیره در OpenGL آشنا شوید.
قست های از کد پروژه (فایل main.cpp)
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 44 45 46 47 48 49 50 51 52 53 54 55 56 | #include <iostream> #include <cmath> #include <GlGLUT.h> using namespace std; // Constant Variables #define WIN_WIDTH 600 #define WIN_HEIGHT 600 #define WIN_POS_X 300 #define WIN_POS_Y 100 #define WIN_BACKGROUND 0.0, 0.0, 0.0, 0.0 // black #define WIN_FOREGROUND 1.0, 1.0, 1.0 // white #define PI 3.14 // Global Variables float circlePos_x = 0; // Functions Prototype void OpenGlInitializer(); void Display(); void Resize(int , int ); void DrawCircle(); void KeyPress(int , int , int ); // Program entry point int main(int argc, char ** argv) { glutInit(&argc, argv); OpenGlInitializer(); glutMainLoop(); return 0; } void OpenGlInitializer() { glutInitWindowSize(WIN_WIDTH, WIN_HEIGHT); glutInitWindowPosition(WIN_POS_X, WIN_POS_Y); glutCreateWindow("Moving Circle"); glClearColor(WIN_BACKGROUND); glutDisplayFunc(Display); glutSpecialFunc(KeyPress); glutReshapeFunc(Resize); } void KeyPress(int key, int x, int y) { switch(key) { case GLUT_KEY_LEFT: circlePos_x -= 1; break; case GLUT_KEY_RIGHT : circlePos_x += 1; break; } glutPostRedisplay(); } |
هیچ نظری ثبت نشده است