Audio of OJ Da Juiceman spitting16 bars during a recent interview
يقوم البرنامج التالي بانشاء نافذة فارغة اسمها(Empty Screen)بحجم 300 300#include#include void draw(void){ glClear(GL_COLOR_BUFFER_BIT);//مسح الشاشة glFlush();}// الدالة الرئيسيةvoid main(){//تحديد حجم النافذةglutInitWindowSize(160,160);glutInitDisplayMode(GLUT_RGB);//انشاء نافذة وتسميتهاglutCreateWindow( Empty Screen );// استعاء لدالة الرسمglutDisplayFunc(draw);// لون خلفية النافذةglClearColor(1.0, 1.0, 1.0, 0.0);//glOrtho(0.0, 100.0, 0.0, 100.0, 0.0, 1.0);glutMainLoop();} البرنامج التالي يرسم ثلاث نقاط باحجام والوان مختلفة#include#include void draw(void){ glClear(GL_COLOR_BUFFER_BIT);/مسح الشاشة//حجم النقطة الأولى glPointSize(4);// دالة رسم النقطةالاولى glBegin(GL_POINTS);// لون النقطة الأولى glColor3f(0, 0, 1);// موقع النقطة الأولى glVertex2i(40,40); glEnd();//حجم النقطة الثانية glPointSize(10); glBegin(GL_POINTS);//لون النقطة الثانية glColor3f(0.8, 0.5, 0.0);// موقع النقطة الثانية glVertex2i(50,50); glEnd();// حجم النقطة الثالثة glPointSize(20); glBegin(GL_POINTS); //لون النقطة الثالثة glColor3f(0.5, 0.0, 0.2);// موقع النقطة الثالثة glVertex2i(60,60); glEnd();glFlush();}void main(){ glutInitWindowSize(300,300); glutInitDisplayMode(GLUT_RGB); glutCreateWindow( Points ); glutDisplayFunc(draw); // استعاء لدالة الرسم glClearColor(1.0,1.0, 1.0, 0.0); glOrtho(0.0, 100.0, 0.0, 100.0, 0.0, 1.0); glutMainLoop();} برنامج يقوم برسم مثلث#include#include void draw(void) { glClear(GL_COLOR_BUFFER_BIT);//لون المثلث glColor3f(0.3, 1.0, 0.2);// رسم المثلث glBegin(GL_TRIANGLES); glVertex2i (10,60); glVertex2i (40,60); glVertex2i (40,90); glEnd(); glFlush();}void main(){ glutInitWindowSize(500,500); glutInitDisplayMode(GLUT_RGB); glutCreateWindow( TRIANGLE ); glutDisplayFunc(draw); glClearColor(0.95, 1.90,1.0, 0.0); glOrtho(0.0, 100.0, 0.0, 100.0, 0.0, 1.0); glutMainLoop();} برنامج يقوم برسم شجرة من مضلعات#include#include void draw(void){ glClear(GL_COLOR_BUFFER_BIT);//دالة رسم مضلع اخضر اللون ليمثل راس الشجرة glColor3f(0.0, 0.5, 0.2); glBegin(GL_POLYGON); glVertex2i (40,80); glVertex2i (60,80); glVertex2i (80,60); glVertex2i (60,40); glVertex2i (40,40); glVertex2i (20,60); glEnd();// دالة رسم مضلع بني اللون ليمثل جذع الشجرة glColor3f(0.3, 0.2, 0.2); glBegin(GL_POLYGON);; glVertex2i (60,40); glVertex2i (40,40); glVertex2i (40,10); glVertex2i (60,10); glEnd(); glFlush();}void main(){ glutInitWindowSize(200,200); glutInitDisplayMode(GLUT_RGB); glutCreateWindow( POLYGON ); glutDisplayFunc(draw); glClearColor(0.95, 0.90, 0.85, 0.0); glOrtho(0.0, 100.0, 0.0, 100.0, 0.0, 1.0); glutMainLoop();} برنامج يقوم برسم مثلث قبل وبعد الازاحة#include#include void redraw(void){ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // رسم مثلث باللون الأخضر الغامق glColor3ub (0, 102,0); glBegin(GL_TRIANGLES); glVertex2f(1,1); glVertex2f(5,5); glVertex2f(9,1); glEnd(); // ازاحة المثلث glTranslatef(7,8,0); glPushMatrix(); // رسم المثلث بلون اخضر فاتح بعد ازاحته glColor3ub (0, 204,0); glBegin(GL_TRIANGLES); glVertex2f(1,1); glVertex2f(5,5); glVertex2f(9,1); glEnd(); glPopMatrix(); glFlush();}void main(){ glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH ); glutInitWindowPosition(300,300); // دالة لتحديد موقع نافذة الرسم glutInitWindowSize(600,600); glutCreateWindow( 2D Translate ); glutDisplayFunc(redraw); glClearColor(0.95, 0.90, 0.85, 0.0); glOrtho(-21.0, 21.0, -21.0, 21.0, -20.0, 20.0); glutMainLoop();} -برنامج يقوم برسم مثلث متحرك في اتجاه الإكس الموجب#include#include //قيمة ابتدائية لمكان تحرك الجسمfloat tx=30;void dlasipy (void){ glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPushMatrix(); // رسم المثلث المتحرك glTranslatef(tx,0,0); glColor3ub (246, 199, 0); glBegin(GL_TRIANGLES); glVertex2f(1,1); glVertex2f(50,50); glVertex2f(90,10); glEnd(); //خطوات تحرك الجسم للجة اليمنى if(tx>=30) { tx=tx+0.01; } glPopMatrix(); glutSwapBuffers();}void main (int argc, char **argv){ glutInit (&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowSize (900, 900); glutInitWindowPosition (100, 100); glutCreateWindow ( Translate always ); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.0, 160.0, 0.0, 160.0,-160.0,160.0); glutDisplayFunc (display); glutIdleFunc (display); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glutMainLoop();} -برنامج يقوم بنقل مثلث عبر دورانه حول نقطة الأصل#include#include void redraw(void){ glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.0, 0.0, 0.0); // x محور glBegin(GL_LINES); glColor3f (0.0, 0.0, 0.0); glVertex2f (19,0); glVertex2f (-19,0); // y محور glVertex2f (0,-19); glVertex2f (0,19); glEnd(); // رسم مثلث باللون الأزرق الغامق glColor3ub (37, 66, 101); glBegin(GL_TRIANGLES); glVertex2f(4,3); glVertex2f(8,12); glVertex2f(12,3); glEnd(); // دوران الجسم glRotatef(180,0,0,0); // رسم الجسم بعد دورانه glColor3ub (112, 153,202); glBegin(GL_TRIANGLES); glVertex2f(4,3); glVertex2f(8,12); glVertex2f(12,3); glEnd(); glutSwapBuffers();}void main(){ glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowPosition(100,100); glutInitWindowSize(800,800); glutCreateWindow( 2D Rotate1 ); glutDisplayFunc(redraw); glClearColor(0.95, 0.90, 0.85, 0.0); glOrtho(-21.0, 21.0, -21.0, 21.0, -20.0, 20.0); glutMainLoop();} برنامج يقوم بتدوير المستطيل حول نقطه معينه#include#include float angle=0;void Rotation_Rround_Point(void){ glClear(GL_COLOR_BUFFER_BIT ); glLoadIdentity(); // النقطة التي سيحدث الدوران حولها glColor3ub (72,24,48); glPointSize(4); glBegin(GL_POINTS); glVertex2f(30,30); glEnd(); glLoadIdentity(); // إراحة معاكسة للسم حتى يتم إرجاع نقطة الأصل لموضعها الأصلي glTranslatef(30,30,0); // دوران الجسم glRotatef(angle,0,0,1); // إزاحة الجسم حتى تتطابق نقطة الدوران بنقطة الأصل glTranslatef(-30,-30,0); // الجسم الذي يتم دورانه glColor3ub (153,51,102); glRectf(10,20,24,30); // زيادة قيمة زاوية الدوران angle+=0.05; if(angle>360) angle=0; glutSwapBuffers(); glutPostRedisplay();}void main(int argc, char **argv){ glutInit(&argc, argv); glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGBA); glutInitWindowPosition(100,100); glutInitWindowSize(900,900); glutCreateWindow( Rotation ); glClearColor(0.95, 0.90, 0.85, 0.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0.0, 60.0, 0.0, 60.0); glutDisplayFunc (Rotation_Rround_Point); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glutMainLoop()}برنامج يقوم بتدوير ابريق الشاي حول محور الاكس#include#include void redraw(void){ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // دوال الاضاءة glEnable(GL_DEPTH_TEST); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glDisable(GL_CULL_FACE); glEnable(GL_COLOR_MATERIAL); // رسم ابريق باللون الأخضر الغامق glPushMatrix(); glColor3ub (0, 53,33); glRotatef(45,1,0,0); glTranslatef(8,6,3); glutSolidTeapot(4.5); glPopMatrix(); glFlush();}void main (int argc, char **argv){ glutInit (&argc, argv); glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH ); glutInitWindowSize (900, 900); glutInitWindowPosition (100, 100); glutCreateWindow( 3D Rotate ); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glClearColor(1.0, 1.0, 1.0, 0.0); glOrtho(-21.0, 21.0, -21.0, 21.0, -20.0, 20.0); glutDisplayFunc (redraw); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glutMainLoop();} برنامج يقوم برسم ساعة بثلاث عقارب تدور#include#include // القيم الإبتدائية لزوايا عقارب الساعةfloat angle1=0,angle2=0,angle3=0;void dlasipy (void){ glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // رسم الساعة glBegin(GL_POLYGON); glColor3ub (41,41,41); glVertex2f (0,-44); glVertex2f (-44,0); glVertex2f (0,44); glVertex2f (44,0); glEnd(); glColor3ub (148,148,148); glBegin(GL_POLYGON); glVertex2f (0,-40); glVertex2f (-40,0); glVertex2f (0,40); glVertex2f (40,0); glEnd(); glColor3ub (80,80,80); glBegin(GL_POLYGON); glVertex2f (0,-23); glVertex2f (-23,0); glVertex2f (0,23); glVertex2f (23,0); glEnd(); glColor3ub (41,41,41); glRectf(-30,-50,30,-33); // رسم عقارب الساعة // عقرب الثواني glPushMatrix(); glRotatef(-angle1, 0 , 0 ,1); glLineWidth(4); glBegin(GL_LINES); glVertex2f (0,0); glVertex2f (23,0); glEnd(); glPopMatrix(); // عقرب الدقائق glPushMatrix(); glRotatef(-angle2, 0 , 0 ,1); glBegin(GL_LINES); glVertex2f (0,0); glVertex2f (18,0); glEnd(); glPopMatrix(); // عقرب الساعات glPushMatrix(); glRotatef(-angle3, 0 , 0 ,1); glBegin(GL_POLYGON); glVertex2f (0,0); glVertex2f (12,3); glVertex2f (17,0); glVertex2f (12,-3); glEnd(); glPopMatrix(); // مركز عقارب الساعة glPushMatrix(); glPointSize(14); glBegin(GL_POINTS); glVertex2f (0,0); glEnd(); glPopMatrix(); // زياة قيم زوايا عقارب الساعة لدورانها باستمرار angle1+= 0.02; if(angle1>360) angle1=0; angle2+= 0.002; if(angle2>360) angle2=0; angle3+= 0.001; if(angle3>360) angle3=0; glutSwapBuffers();}void main (int argc, char **argv){ glutInit (&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowSize (200, 200); glutInitWindowPosition (100, 100); glutCreateWindow ( Rotate always ); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glClearColor(0.95, 0.90, 0.85, 0.0); glOrtho(-50.0, 50.0, -60.0,50.0,-50.0,50.0); glutDisplayFunc (display); glutIdleFunc (display); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glutMainLoop();} رسم مثلث وعادة رسمه مرتين بعد عمل تحجيم (سكيلينق) ونلاحظ تغير موقعه مع كل سكيلنق#include#include void redraw(void){ glClear(GL_COLOR_BUFFER_BIT); // xمحور glBegin(GL_LINES); glVertex3f (19,0,0); glVertex3f (-19,0,0); // yمحور glVertex3f (0,-19,0); glVertex3f (0,19,0); glEnd(); // رسم المثلث الأساسي باللون الأزرق الغامق glColor3ub (33,88,104); glBegin(GL_TRIANGLES); glVertex3f(4,3,0); glVertex3f(6,6,0); glVertex3f(8,3,0); glEnd(); glPushMatrix(); // رسم المثلث باللون الأزرق الفاتح بعد تكبير حجمه glScalef(2, 2.5, 2); glColor3ub (55,149,175); glBegin(GL_TRIANGLES); glVertex3f(4,3,0); glVertex3f(6,6,0); glVertex3f(8,3,0); glEnd(); glPopMatrix(); // رسم المثلث باللون الأحمر بعد تصغير حجمه glPushMatrix(); glScalef(0.5, 0.6, 0.5); glColor3ub (252,20,53); glBegin(GL_TRIANGLES); glVertex3f(4,3,0); glVertex3f(6,6,0); glVertex3f(8,3,0); glEnd(); glPopMatrix(); glutSwapBuffers();}void main(){ glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowPosition(100,100); glutInitWindowSize(900,900); glutCreateWindow( Scale ); glutDisplayFunc(redraw); glClearColor(0.95, 0.90, 0.85, 0.0); glOrtho(-21.0, 21.0, -21.0, 21.0, -20.0, 20.0); glutMainLoop();} -#include#include void redraw(void){ glClear(GL_COLOR_BUFFER_BIT); // xمحور glBegin(GL_LINES); glVertex3f (19,0,0); glVertex3f (-19,0,0); glEnd(); // y محور glBegin(GL_LINES); glVertex3f (0,-19,0); glVertex3f (0,19,0); glEnd(); glPushMatrix(); // إزاحة معاكسة للحسم حتى تعود النقطة الثابتة إلى موقعها الأصلي glTranslatef(7.5,5.5,0); // تكبير حجم الجسم glScalef(2, 2, 2); // إزاحة الجسم حتى تتطابق النقطة الثابتة بنقطة الأصل glTranslatef(-7.5,-5.5,0); // رسم المثلث باللون البرتقالي الفاتح بعد تكبيره glColor3ub (255,130,45); glBegin(GL_TRIANGLES); glVertex3f(4,3,0); glVertex3f(7.5,10,0); glVertex3f(11,3,0); glEnd(); glPopMatrix(); //رسم المثلث الأساسي باللون البرتقالي الغامق glColor3ub (255,51,0); glBegin(GL_TRIANGLES); glVertex3f(4,3,0); glVertex3f(7.5,10,0); glVertex3f(11,3,0); glEnd(); // رسم النقطة الثابته التي سيتم التحجيم بالنسبة لها glColor3ub (72,24,48); glPointSize(4); glBegin(GL_POINTS); glVertex2f(7.5,5.5); glEnd(); glutSwapBuffers();}void main (int argc, char **argv){ glutInit (&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowPosition(100,100); glutInitWindowSize(1000,800); glutCreateWindow( Scale2 ); glutDisplayFunc(redraw); glClearColor(0.95, 0.90, 0.85, 0.0); glOrtho(-21.0, 21.0, -21.0, 21.0, -20.0, 20.0); glutMainLoop();} برنامج يقوم بكبير الشكل مع حركته#include#include // قيمة إبتدائية لبداية مكان تحرك الجسمfloat tx=10,ty=60;// قيمة إبتدائية لبداية حجم الجسمfloat sx=0.1,sy=0.1;void dlasipy (void){ glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // رسم البحر glPushMatrix(); glBegin(GL_POLYGON); glColor3ub (39,56,74); glVertex2f (0,-30); glVertex2f (220,-30); glColor3ub (59,86,105); glVertex2f (220,30); glVertex2f (0,30); glEnd(); glBegin(GL_POLYGON); glColor3ub (59,86,105); glVertex2f (0,30); glVertex2f (220,30); glColor3ub (111,140,136); glVertex2f (220,50); glVertex2f (0,50); glEnd(); glColor3ub (111,140,136); glBegin(GL_POLYGON); glVertex2f (0,50); glVertex2f (220,50); glVertex2f (220,70); glVertex2f (0,70); glEnd(); glPopMatrix(); // رسم السفينة glPushMatrix(); //لتحريك السفينة glTranslatef(tx,ty,0); // لتغير حجم السفينة glScalef(sx,sy,0.1); glPushMatrix(); glColor3ub (0,0,0); glBegin(GL_POLYGON); glVertex2f (40,20); glVertex2f (15,50); glVertex2f (40,50); glEnd(); glBegin(GL_POLYGON); glVertex2f (40,20); glVertex2f (40,50); glVertex2f (170,50); glVertex2f (170,0); glEnd(); glBegin(GL_POLYGON); glVertex2f (170,50); glVertex2f (192,50); glVertex2f (170,0); glEnd(); glColor3ub (173,15,30); glBegin(GL_POLYGON); glVertex2f (110,55); glVertex2f (192,55); glVertex2f (192,50); glVertex2f (110,50); glEnd(); glBegin(GL_TRIANGLES); glVertex2f (192,50); glVertex2f (192,55); glVertex2f (196,55); glEnd(); glColor3ub (238, 187, 108); glRectf(30,60,40,80); glRectf(50,60,60,80); glRectf(75,60,85,80); glColor3ub (173,15,30); glBegin(GL_POLYGON); glVertex2f (20,50); glVertex2f (20,60); glVertex2f (95,60); glVertex2f (95,50); glEnd(); glBegin(GL_TRIANGLES); glVertex2f (20,60); glVertex2f (60,65); glVertex2f (95,60); glEnd(); glPopMatrix(); // زيادة قيمة الاكس لتحريك الجسم tx+=0.1; //انقاص قيمة الواي لتحريك الجسم ty-=0.1; // زياة قيمة معامل التكبير لإكس sx+=0.001; // زياة قيمة معامل التكبير لواي sy+=0.001; glPopMatrix(); glutSwapBuffers();}void main (int argc, char **argv){ glutInit (&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowSize (1000, 900); glutInitWindowPosition (100, 100); glutCreateWindow ( Scale always ); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glClearColor(0.61,0.75,0.85, 1); glOrtho(0.0, 220.0, -30.0, 160.0,-160.0,160.0); glutDisplayFunc (display); glutIdleFunc (display); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glutMainLoop();} برنامج لرسم مكعب ثلاثي الأبعاد باستخدام المضلعاتحول محوري الاكس والواي#include#includedouble angle=45.0;void draw(void){ glClear(GL_COLOR_BUFFER_BIT); glPushMatrix(); //دوران المكعب glRotatef(angle,1,1,0); //المضلع الخلفي // glPushMatrix(); glColor3f(0.1, 0.9, 1); glBegin (GL_POLYGON); glVertex3i (20,20,20); glVertex3i (20,-20,20); glVertex3i (-20,-20,20); glVertex3i (-20,20,20); glEnd(); // حد المضلع الخلفي glColor3f(0, 0, 0); glBegin (GL_LINE_LOOP); glVertex3i (20,20,20); glVertex3i (20,-20,20); glVertex3i (-20,-20,20); glVertex3i (-20,20,20); glEnd(); // المضلع السفلي glColor3f(0.3, 0.6, 1); glBegin (GL_POLYGON); glVertex3i (-20,20,20); glVertex3i (-20,20,-20); glVertex3i (20,20,-20); glVertex3i (20,20,20); glEnd(); // حد المضلع السفلي glColor3f(0, 0, 0); glBegin (GL_LINE_LOOP); glVertex3i (-20,20,20); glVertex3i (-20,20,-20); glVertex3i (20,20,-20); glVertex3i (20,20,20); glEnd(); // الأيسر المضلع glColor3f(0.2, 0.7, 1); glBegin (GL_POLYGON); glVertex3i (-20,20,20); glVertex3i (-20,-20,20); glVertex3i (-20,-20,-20); glVertex3i (-20,20,-20); glEnd(); // حد المضلع الأيسر glColor3f(0, 0, 0); glBegin (GL_LINE_LOOP); glVertex3i (-20,20,20); glVertex3i (-20,-20,20); glVertex3i (-20,-20,-20); glVertex3i (-20,20,-20); glEnd(); // المضلع العلوي glColor3f(0, 0.7, 1); glBegin (GL_POLYGON); glVertex3i (20,20,20); glVertex3i (20,-20,20); glVertex3i (20,-20,-20); glVertex3i (20,20,-20); glEnd(); // حد المضلع العلوي glColor3f(0, 0, 0); glBegin (GL_LINE_LOOP); glVertex3i (20,20,20); glVertex3i (20,-20,20); glVertex3i (20,-20,-20); glVertex3i (20,20,-20); glEnd(); // المضلع الأيمن glColor3f(0, 1, 1); glBegin (GL_POLYGON); glVertex3i (-20,-20,20); glVertex3i (-20,-20,-20); glVertex3i (20,-20,-20); glVertex3i (20,-20,20); glEnd(); // حد المضلع الأيمن glColor3f(0, 0, 0); glBegin (GL_LINE_LOOP); glVertex3i (-20,-20,20); glVertex3i (-20,-20,-20); glVertex3i (20,-20,-20); glVertex3i (20,-20,20); glEnd(); // المضلع الأمامي glColor3f(0.5, 1, 0.8); glBegin (GL_POLYGON); glVertex3i (20,20,-20); glVertex3i (20,-20,-20); glVertex3i (-20,-20,-20); glVertex3i (-20,20,-20); glEnd(); // حد المضلع الأمامي glColor3f(0, 0, 0); glBegin (GL_LINE_LOOP); glVertex3i (20,20,-20); glVertex3i (20,-20,-20); glVertex3i (-20,-20,-20); glVertex3i (-20,20,-20); glEnd(); glPopMatrix(); //زيادة قيمة زاوية الدوران angle+=0.05; if(angle>360) angle=0; glPopMatrix(); glutSwapBuffers(); glutPostRedisplay();}void main(){ glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGBA); glutInitWindowSize(700,700); glutCreateWindow( cube ); glutDisplayFunc(draw); glClearColor(0.0, 0.0, 0.0, 1.0); glOrtho(-100.0, 100.0, -100.0, 100.0, -100.0, 100.0); glutMainLoop();}
Δ
April 1st, 2014 - 5:24 pm
يقوم البرنامج التالي بانشاء نافذة فارغة اسمها(Empty Screen)بحجم 300 300#include#include void draw(void){ glClear(GL_COLOR_BUFFER_BIT);//مسح الشاشة glFlush();}// الدالة الرئيسيةvoid main(){//تحديد حجم النافذةglutInitWindowSize(160,160);glutInitDisplayMode(GLUT_RGB);//انشاء نافذة وتسميتهاglutCreateWindow( Empty Screen );// استعاء لدالة الرسمglutDisplayFunc(draw);// لون خلفية النافذةglClearColor(1.0, 1.0, 1.0, 0.0);//glOrtho(0.0, 100.0, 0.0, 100.0, 0.0, 1.0);glutMainLoop();} البرنامج التالي يرسم ثلاث نقاط باحجام والوان مختلفة#include#include void draw(void){ glClear(GL_COLOR_BUFFER_BIT);/مسح الشاشة//حجم النقطة الأولى glPointSize(4);// دالة رسم النقطةالاولى glBegin(GL_POINTS);// لون النقطة الأولى glColor3f(0, 0, 1);// موقع النقطة الأولى glVertex2i(40,40); glEnd();//حجم النقطة الثانية glPointSize(10); glBegin(GL_POINTS);//لون النقطة الثانية glColor3f(0.8, 0.5, 0.0);// موقع النقطة الثانية glVertex2i(50,50); glEnd();// حجم النقطة الثالثة glPointSize(20); glBegin(GL_POINTS); //لون النقطة الثالثة glColor3f(0.5, 0.0, 0.2);// موقع النقطة الثالثة glVertex2i(60,60); glEnd();glFlush();}void main(){ glutInitWindowSize(300,300); glutInitDisplayMode(GLUT_RGB); glutCreateWindow( Points ); glutDisplayFunc(draw); // استعاء لدالة الرسم glClearColor(1.0,1.0, 1.0, 0.0); glOrtho(0.0, 100.0, 0.0, 100.0, 0.0, 1.0); glutMainLoop();} برنامج يقوم برسم مثلث#include#include void draw(void) { glClear(GL_COLOR_BUFFER_BIT);//لون المثلث glColor3f(0.3, 1.0, 0.2);// رسم المثلث glBegin(GL_TRIANGLES); glVertex2i (10,60); glVertex2i (40,60); glVertex2i (40,90); glEnd(); glFlush();}void main(){ glutInitWindowSize(500,500); glutInitDisplayMode(GLUT_RGB); glutCreateWindow( TRIANGLE ); glutDisplayFunc(draw); glClearColor(0.95, 1.90,1.0, 0.0); glOrtho(0.0, 100.0, 0.0, 100.0, 0.0, 1.0); glutMainLoop();} برنامج يقوم برسم شجرة من مضلعات#include#include void draw(void){ glClear(GL_COLOR_BUFFER_BIT);//دالة رسم مضلع اخضر اللون ليمثل راس الشجرة glColor3f(0.0, 0.5, 0.2); glBegin(GL_POLYGON); glVertex2i (40,80); glVertex2i (60,80); glVertex2i (80,60); glVertex2i (60,40); glVertex2i (40,40); glVertex2i (20,60); glEnd();// دالة رسم مضلع بني اللون ليمثل جذع الشجرة glColor3f(0.3, 0.2, 0.2); glBegin(GL_POLYGON);; glVertex2i (60,40); glVertex2i (40,40); glVertex2i (40,10); glVertex2i (60,10); glEnd(); glFlush();}void main(){ glutInitWindowSize(200,200); glutInitDisplayMode(GLUT_RGB); glutCreateWindow( POLYGON ); glutDisplayFunc(draw); glClearColor(0.95, 0.90, 0.85, 0.0); glOrtho(0.0, 100.0, 0.0, 100.0, 0.0, 1.0); glutMainLoop();} برنامج يقوم برسم مثلث قبل وبعد الازاحة#include#include void redraw(void){ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // رسم مثلث باللون الأخضر الغامق glColor3ub (0, 102,0); glBegin(GL_TRIANGLES); glVertex2f(1,1); glVertex2f(5,5); glVertex2f(9,1); glEnd(); // ازاحة المثلث glTranslatef(7,8,0); glPushMatrix(); // رسم المثلث بلون اخضر فاتح بعد ازاحته glColor3ub (0, 204,0); glBegin(GL_TRIANGLES); glVertex2f(1,1); glVertex2f(5,5); glVertex2f(9,1); glEnd(); glPopMatrix(); glFlush();}void main(){ glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH ); glutInitWindowPosition(300,300); // دالة لتحديد موقع نافذة الرسم glutInitWindowSize(600,600); glutCreateWindow( 2D Translate ); glutDisplayFunc(redraw); glClearColor(0.95, 0.90, 0.85, 0.0); glOrtho(-21.0, 21.0, -21.0, 21.0, -20.0, 20.0); glutMainLoop();} -برنامج يقوم برسم مثلث متحرك في اتجاه الإكس الموجب#include#include //قيمة ابتدائية لمكان تحرك الجسمfloat tx=30;void dlasipy (void){ glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPushMatrix(); // رسم المثلث المتحرك glTranslatef(tx,0,0); glColor3ub (246, 199, 0); glBegin(GL_TRIANGLES); glVertex2f(1,1); glVertex2f(50,50); glVertex2f(90,10); glEnd(); //خطوات تحرك الجسم للجة اليمنى if(tx>=30) { tx=tx+0.01; } glPopMatrix(); glutSwapBuffers();}void main (int argc, char **argv){ glutInit (&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowSize (900, 900); glutInitWindowPosition (100, 100); glutCreateWindow ( Translate always ); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.0, 160.0, 0.0, 160.0,-160.0,160.0); glutDisplayFunc (display); glutIdleFunc (display); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glutMainLoop();} -برنامج يقوم بنقل مثلث عبر دورانه حول نقطة الأصل#include#include void redraw(void){ glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.0, 0.0, 0.0); // x محور glBegin(GL_LINES); glColor3f (0.0, 0.0, 0.0); glVertex2f (19,0); glVertex2f (-19,0); // y محور glVertex2f (0,-19); glVertex2f (0,19); glEnd(); // رسم مثلث باللون الأزرق الغامق glColor3ub (37, 66, 101); glBegin(GL_TRIANGLES); glVertex2f(4,3); glVertex2f(8,12); glVertex2f(12,3); glEnd(); // دوران الجسم glRotatef(180,0,0,0); // رسم الجسم بعد دورانه glColor3ub (112, 153,202); glBegin(GL_TRIANGLES); glVertex2f(4,3); glVertex2f(8,12); glVertex2f(12,3); glEnd(); glutSwapBuffers();}void main(){ glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowPosition(100,100); glutInitWindowSize(800,800); glutCreateWindow( 2D Rotate1 ); glutDisplayFunc(redraw); glClearColor(0.95, 0.90, 0.85, 0.0); glOrtho(-21.0, 21.0, -21.0, 21.0, -20.0, 20.0); glutMainLoop();} برنامج يقوم بتدوير المستطيل حول نقطه معينه#include#include float angle=0;void Rotation_Rround_Point(void){ glClear(GL_COLOR_BUFFER_BIT ); glLoadIdentity(); // النقطة التي سيحدث الدوران حولها glColor3ub (72,24,48); glPointSize(4); glBegin(GL_POINTS); glVertex2f(30,30); glEnd(); glLoadIdentity(); // إراحة معاكسة للسم حتى يتم إرجاع نقطة الأصل لموضعها الأصلي glTranslatef(30,30,0); // دوران الجسم glRotatef(angle,0,0,1); // إزاحة الجسم حتى تتطابق نقطة الدوران بنقطة الأصل glTranslatef(-30,-30,0); // الجسم الذي يتم دورانه glColor3ub (153,51,102); glRectf(10,20,24,30); // زيادة قيمة زاوية الدوران angle+=0.05; if(angle>360) angle=0; glutSwapBuffers(); glutPostRedisplay();}void main(int argc, char **argv){ glutInit(&argc, argv); glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGBA); glutInitWindowPosition(100,100); glutInitWindowSize(900,900); glutCreateWindow( Rotation ); glClearColor(0.95, 0.90, 0.85, 0.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0.0, 60.0, 0.0, 60.0); glutDisplayFunc (Rotation_Rround_Point); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glutMainLoop()}برنامج يقوم بتدوير ابريق الشاي حول محور الاكس#include#include void redraw(void){ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // دوال الاضاءة glEnable(GL_DEPTH_TEST); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glDisable(GL_CULL_FACE); glEnable(GL_COLOR_MATERIAL); // رسم ابريق باللون الأخضر الغامق glPushMatrix(); glColor3ub (0, 53,33); glRotatef(45,1,0,0); glTranslatef(8,6,3); glutSolidTeapot(4.5); glPopMatrix(); glFlush();}void main (int argc, char **argv){ glutInit (&argc, argv); glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH ); glutInitWindowSize (900, 900); glutInitWindowPosition (100, 100); glutCreateWindow( 3D Rotate ); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glClearColor(1.0, 1.0, 1.0, 0.0); glOrtho(-21.0, 21.0, -21.0, 21.0, -20.0, 20.0); glutDisplayFunc (redraw); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glutMainLoop();} برنامج يقوم برسم ساعة بثلاث عقارب تدور#include#include // القيم الإبتدائية لزوايا عقارب الساعةfloat angle1=0,angle2=0,angle3=0;void dlasipy (void){ glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // رسم الساعة glBegin(GL_POLYGON); glColor3ub (41,41,41); glVertex2f (0,-44); glVertex2f (-44,0); glVertex2f (0,44); glVertex2f (44,0); glEnd(); glColor3ub (148,148,148); glBegin(GL_POLYGON); glVertex2f (0,-40); glVertex2f (-40,0); glVertex2f (0,40); glVertex2f (40,0); glEnd(); glColor3ub (80,80,80); glBegin(GL_POLYGON); glVertex2f (0,-23); glVertex2f (-23,0); glVertex2f (0,23); glVertex2f (23,0); glEnd(); glColor3ub (41,41,41); glRectf(-30,-50,30,-33); // رسم عقارب الساعة // عقرب الثواني glPushMatrix(); glRotatef(-angle1, 0 , 0 ,1); glLineWidth(4); glBegin(GL_LINES); glVertex2f (0,0); glVertex2f (23,0); glEnd(); glPopMatrix(); // عقرب الدقائق glPushMatrix(); glRotatef(-angle2, 0 , 0 ,1); glBegin(GL_LINES); glVertex2f (0,0); glVertex2f (18,0); glEnd(); glPopMatrix(); // عقرب الساعات glPushMatrix(); glRotatef(-angle3, 0 , 0 ,1); glBegin(GL_POLYGON); glVertex2f (0,0); glVertex2f (12,3); glVertex2f (17,0); glVertex2f (12,-3); glEnd(); glPopMatrix(); // مركز عقارب الساعة glPushMatrix(); glPointSize(14); glBegin(GL_POINTS); glVertex2f (0,0); glEnd(); glPopMatrix(); // زياة قيم زوايا عقارب الساعة لدورانها باستمرار angle1+= 0.02; if(angle1>360) angle1=0; angle2+= 0.002; if(angle2>360) angle2=0; angle3+= 0.001; if(angle3>360) angle3=0; glutSwapBuffers();}void main (int argc, char **argv){ glutInit (&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowSize (200, 200); glutInitWindowPosition (100, 100); glutCreateWindow ( Rotate always ); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glClearColor(0.95, 0.90, 0.85, 0.0); glOrtho(-50.0, 50.0, -60.0,50.0,-50.0,50.0); glutDisplayFunc (display); glutIdleFunc (display); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glutMainLoop();} رسم مثلث وعادة رسمه مرتين بعد عمل تحجيم (سكيلينق) ونلاحظ تغير موقعه مع كل سكيلنق#include#include void redraw(void){ glClear(GL_COLOR_BUFFER_BIT); // xمحور glBegin(GL_LINES); glVertex3f (19,0,0); glVertex3f (-19,0,0); // yمحور glVertex3f (0,-19,0); glVertex3f (0,19,0); glEnd(); // رسم المثلث الأساسي باللون الأزرق الغامق glColor3ub (33,88,104); glBegin(GL_TRIANGLES); glVertex3f(4,3,0); glVertex3f(6,6,0); glVertex3f(8,3,0); glEnd(); glPushMatrix(); // رسم المثلث باللون الأزرق الفاتح بعد تكبير حجمه glScalef(2, 2.5, 2); glColor3ub (55,149,175); glBegin(GL_TRIANGLES); glVertex3f(4,3,0); glVertex3f(6,6,0); glVertex3f(8,3,0); glEnd(); glPopMatrix(); // رسم المثلث باللون الأحمر بعد تصغير حجمه glPushMatrix(); glScalef(0.5, 0.6, 0.5); glColor3ub (252,20,53); glBegin(GL_TRIANGLES); glVertex3f(4,3,0); glVertex3f(6,6,0); glVertex3f(8,3,0); glEnd(); glPopMatrix(); glutSwapBuffers();}void main(){ glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowPosition(100,100); glutInitWindowSize(900,900); glutCreateWindow( Scale ); glutDisplayFunc(redraw); glClearColor(0.95, 0.90, 0.85, 0.0); glOrtho(-21.0, 21.0, -21.0, 21.0, -20.0, 20.0); glutMainLoop();} -#include#include void redraw(void){ glClear(GL_COLOR_BUFFER_BIT); // xمحور glBegin(GL_LINES); glVertex3f (19,0,0); glVertex3f (-19,0,0); glEnd(); // y محور glBegin(GL_LINES); glVertex3f (0,-19,0); glVertex3f (0,19,0); glEnd(); glPushMatrix(); // إزاحة معاكسة للحسم حتى تعود النقطة الثابتة إلى موقعها الأصلي glTranslatef(7.5,5.5,0); // تكبير حجم الجسم glScalef(2, 2, 2); // إزاحة الجسم حتى تتطابق النقطة الثابتة بنقطة الأصل glTranslatef(-7.5,-5.5,0); // رسم المثلث باللون البرتقالي الفاتح بعد تكبيره glColor3ub (255,130,45); glBegin(GL_TRIANGLES); glVertex3f(4,3,0); glVertex3f(7.5,10,0); glVertex3f(11,3,0); glEnd(); glPopMatrix(); //رسم المثلث الأساسي باللون البرتقالي الغامق glColor3ub (255,51,0); glBegin(GL_TRIANGLES); glVertex3f(4,3,0); glVertex3f(7.5,10,0); glVertex3f(11,3,0); glEnd(); // رسم النقطة الثابته التي سيتم التحجيم بالنسبة لها glColor3ub (72,24,48); glPointSize(4); glBegin(GL_POINTS); glVertex2f(7.5,5.5); glEnd(); glutSwapBuffers();}void main (int argc, char **argv){ glutInit (&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowPosition(100,100); glutInitWindowSize(1000,800); glutCreateWindow( Scale2 ); glutDisplayFunc(redraw); glClearColor(0.95, 0.90, 0.85, 0.0); glOrtho(-21.0, 21.0, -21.0, 21.0, -20.0, 20.0); glutMainLoop();} برنامج يقوم بكبير الشكل مع حركته#include#include // قيمة إبتدائية لبداية مكان تحرك الجسمfloat tx=10,ty=60;// قيمة إبتدائية لبداية حجم الجسمfloat sx=0.1,sy=0.1;void dlasipy (void){ glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // رسم البحر glPushMatrix(); glBegin(GL_POLYGON); glColor3ub (39,56,74); glVertex2f (0,-30); glVertex2f (220,-30); glColor3ub (59,86,105); glVertex2f (220,30); glVertex2f (0,30); glEnd(); glBegin(GL_POLYGON); glColor3ub (59,86,105); glVertex2f (0,30); glVertex2f (220,30); glColor3ub (111,140,136); glVertex2f (220,50); glVertex2f (0,50); glEnd(); glColor3ub (111,140,136); glBegin(GL_POLYGON); glVertex2f (0,50); glVertex2f (220,50); glVertex2f (220,70); glVertex2f (0,70); glEnd(); glPopMatrix(); // رسم السفينة glPushMatrix(); //لتحريك السفينة glTranslatef(tx,ty,0); // لتغير حجم السفينة glScalef(sx,sy,0.1); glPushMatrix(); glColor3ub (0,0,0); glBegin(GL_POLYGON); glVertex2f (40,20); glVertex2f (15,50); glVertex2f (40,50); glEnd(); glBegin(GL_POLYGON); glVertex2f (40,20); glVertex2f (40,50); glVertex2f (170,50); glVertex2f (170,0); glEnd(); glBegin(GL_POLYGON); glVertex2f (170,50); glVertex2f (192,50); glVertex2f (170,0); glEnd(); glColor3ub (173,15,30); glBegin(GL_POLYGON); glVertex2f (110,55); glVertex2f (192,55); glVertex2f (192,50); glVertex2f (110,50); glEnd(); glBegin(GL_TRIANGLES); glVertex2f (192,50); glVertex2f (192,55); glVertex2f (196,55); glEnd(); glColor3ub (238, 187, 108); glRectf(30,60,40,80); glRectf(50,60,60,80); glRectf(75,60,85,80); glColor3ub (173,15,30); glBegin(GL_POLYGON); glVertex2f (20,50); glVertex2f (20,60); glVertex2f (95,60); glVertex2f (95,50); glEnd(); glBegin(GL_TRIANGLES); glVertex2f (20,60); glVertex2f (60,65); glVertex2f (95,60); glEnd(); glPopMatrix(); // زيادة قيمة الاكس لتحريك الجسم tx+=0.1; //انقاص قيمة الواي لتحريك الجسم ty-=0.1; // زياة قيمة معامل التكبير لإكس sx+=0.001; // زياة قيمة معامل التكبير لواي sy+=0.001; glPopMatrix(); glutSwapBuffers();}void main (int argc, char **argv){ glutInit (&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowSize (1000, 900); glutInitWindowPosition (100, 100); glutCreateWindow ( Scale always ); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glClearColor(0.61,0.75,0.85, 1); glOrtho(0.0, 220.0, -30.0, 160.0,-160.0,160.0); glutDisplayFunc (display); glutIdleFunc (display); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glutMainLoop();} برنامج لرسم مكعب ثلاثي الأبعاد باستخدام المضلعاتحول محوري الاكس والواي#include#includedouble angle=45.0;void draw(void){ glClear(GL_COLOR_BUFFER_BIT); glPushMatrix(); //دوران المكعب glRotatef(angle,1,1,0); //المضلع الخلفي // glPushMatrix(); glColor3f(0.1, 0.9, 1); glBegin (GL_POLYGON); glVertex3i (20,20,20); glVertex3i (20,-20,20); glVertex3i (-20,-20,20); glVertex3i (-20,20,20); glEnd(); // حد المضلع الخلفي glColor3f(0, 0, 0); glBegin (GL_LINE_LOOP); glVertex3i (20,20,20); glVertex3i (20,-20,20); glVertex3i (-20,-20,20); glVertex3i (-20,20,20); glEnd(); // المضلع السفلي glColor3f(0.3, 0.6, 1); glBegin (GL_POLYGON); glVertex3i (-20,20,20); glVertex3i (-20,20,-20); glVertex3i (20,20,-20); glVertex3i (20,20,20); glEnd(); // حد المضلع السفلي glColor3f(0, 0, 0); glBegin (GL_LINE_LOOP); glVertex3i (-20,20,20); glVertex3i (-20,20,-20); glVertex3i (20,20,-20); glVertex3i (20,20,20); glEnd(); // الأيسر المضلع glColor3f(0.2, 0.7, 1); glBegin (GL_POLYGON); glVertex3i (-20,20,20); glVertex3i (-20,-20,20); glVertex3i (-20,-20,-20); glVertex3i (-20,20,-20); glEnd(); // حد المضلع الأيسر glColor3f(0, 0, 0); glBegin (GL_LINE_LOOP); glVertex3i (-20,20,20); glVertex3i (-20,-20,20); glVertex3i (-20,-20,-20); glVertex3i (-20,20,-20); glEnd(); // المضلع العلوي glColor3f(0, 0.7, 1); glBegin (GL_POLYGON); glVertex3i (20,20,20); glVertex3i (20,-20,20); glVertex3i (20,-20,-20); glVertex3i (20,20,-20); glEnd(); // حد المضلع العلوي glColor3f(0, 0, 0); glBegin (GL_LINE_LOOP); glVertex3i (20,20,20); glVertex3i (20,-20,20); glVertex3i (20,-20,-20); glVertex3i (20,20,-20); glEnd(); // المضلع الأيمن glColor3f(0, 1, 1); glBegin (GL_POLYGON); glVertex3i (-20,-20,20); glVertex3i (-20,-20,-20); glVertex3i (20,-20,-20); glVertex3i (20,-20,20); glEnd(); // حد المضلع الأيمن glColor3f(0, 0, 0); glBegin (GL_LINE_LOOP); glVertex3i (-20,-20,20); glVertex3i (-20,-20,-20); glVertex3i (20,-20,-20); glVertex3i (20,-20,20); glEnd(); // المضلع الأمامي glColor3f(0.5, 1, 0.8); glBegin (GL_POLYGON); glVertex3i (20,20,-20); glVertex3i (20,-20,-20); glVertex3i (-20,-20,-20); glVertex3i (-20,20,-20); glEnd(); // حد المضلع الأمامي glColor3f(0, 0, 0); glBegin (GL_LINE_LOOP); glVertex3i (20,20,-20); glVertex3i (20,-20,-20); glVertex3i (-20,-20,-20); glVertex3i (-20,20,-20); glEnd(); glPopMatrix(); //زيادة قيمة زاوية الدوران angle+=0.05; if(angle>360) angle=0; glPopMatrix(); glutSwapBuffers(); glutPostRedisplay();}void main(){ glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGBA); glutInitWindowSize(700,700); glutCreateWindow( cube ); glutDisplayFunc(draw); glClearColor(0.0, 0.0, 0.0, 1.0); glOrtho(-100.0, 100.0, -100.0, 100.0, -100.0, 100.0); glutMainLoop();}