Upgrade to Pro — share decks privately, control downloads, hide ads and more …

nouGL

Avatar for Anousone HERFARKER Anousone HERFARKER
February 27, 2013
200

 nouGL

Present OpenGL

Avatar for Anousone HERFARKER

Anousone HERFARKER

February 27, 2013

Transcript

  1. pg. 1 ສາທາລະນະລັດປະຊາທິປະໄຕປະຊາຊົນລາວ ສັນຕິພາບເອກະລາດປະຊາທິປະໄຕເອກະພາບວັດທະນາຖາວອນ ມະຫາວິທະຍາໄລແຫ່ງຊາດ ຄະນະວິທະຍາສາດທ ໍາມະຊາດ ພາກວິຊາວິທະຍາສາດຄອມພີວເຕີ ວິຊາ ວິຊາ

    ວິຊາ ວິຊາ: : : : ຄອມພີວເຕີກາຣ ຄອມພີວເຕີກາຣ ຄອມພີວເຕີກາຣ ຄອມພີວເຕີກາຣບ ບ ບ ບຟຣີ ຟຣີ ຟຣີ ຟຣີກ ກ ກ ກ ຫົວຂໍ້: ຫ້ອງຮັບແຂກ ສອນ ສອນ ສອນ ສອນໂດຍ ໂດຍ ໂດຍ ໂດຍ: : : :ອ ອ ອ ອ. . . .ຈ ຈ ຈ ຈ ນິລັນກູນ ນິລັນກູນ ນິລັນກູນ ນິລັນກູນ ຂຽນ ຂຽນ ຂຽນ ຂຽນໂດຍ ໂດຍ ໂດຍ ໂດຍ: : : : ທ ທ ທ ທ. . . . ອານຸສອນ ເຮີຟາເກີ ອານຸສອນ ເຮີຟາເກີ ອານຸສອນ ເຮີຟາເກີ ອານຸສອນ ເຮີຟາເກີ ນ ສຸດາພອນ ວິລະວົງສອນ ນ ສຸດາພອນ ວິລະວົງສອນ ນ ສຸດາພອນ ວິລະວົງສອນ ນ ສຸດາພອນ ວິລະວົງສອນ ນ ພັນທຸລັດ ສີຫາວົງ ນ ພັນທຸລັດ ສີຫາວົງ ນ ພັນທຸລັດ ສີຫາວົງ ນ ພັນທຸລັດ ສີຫາວົງ ນ ສັນສະນີ ສຸກສະຫວັນ ນ ສັນສະນີ ສຸກສະຫວັນ ນ ສັນສະນີ ສຸກສະຫວັນ ນ ສັນສະນີ ສຸກສະຫວັນ ຫ້ອງ ຫ້ອງ ຫ້ອງ ຫ້ອງ:CS4 :CS4 :CS4 :CS4ປີ ປີ ປີ ປີ 4 4 4 4 ສົກຮຽນ ສົກຮຽນ ສົກຮຽນ ສົກຮຽນ 2012 2012 2012 2012- - - -201 201 201 2013 3 3 3
  2. pg. 2 I I I I. . . . ພາກສະເໜີ

    ພາກສະເໜີ ພາກສະເໜີ ພາກສະເໜີ ໂປຼແກຮມນີ້ສ້າງຂຶ້ນມາຈາກການນ ໍາເອົາບົດຮຽນທີ່ເຄີຍໄດ້ຮຽນມາແລ້ວເພື່ ອນ ໍາເອົາໄປສ້າງ ເປັນຮູບຫ້ອງຮັບແຂກໃນຮູບແບບສອງມິຕິ. 1. 1. 1. 1. ໂດຍ ໂດຍ ໂດຍ ໂດຍມີ ມີ ມີ ມີການ ການ ການ ການນ ໍາ ນ ໍາ ນ ໍາ ນ ໍາໃຊ້ ໃຊ້ ໃຊ້ ໃຊ້H H H Header eader eader eader File File File File ແລະ ແລະ ແລະ ແລະFunction Function Function Functionດັ່ງນີ້ ດັ່ງນີ້ ດັ່ງນີ້ ດັ່ງນີ້: : : : 1 1 1 1. . . .1 1 1 1 Header Flie Header Flie Header Flie Header Flie #include<GL/glut.h>ເອີ້ນ file header ສ ໍາລັບ GL 1 1 1 1. . . .2 2 2 2 Function Function Function Functionສ ໍາລັບກ ໍານ ົດຄ່າເລີ່ ມຕົ້ນ ສ ໍາລັບກ ໍານ ົດຄ່າເລີ່ ມຕົ້ນ ສ ໍາລັບກ ໍານ ົດຄ່າເລີ່ ມຕົ້ນ ສ ໍາລັບກ ໍານ ົດຄ່າເລີ່ ມຕົ້ນ • glClearColor (1.0,1.0,1.0,0.0); ກ ໍ ານ ົດສີພື້ນຫຼັງຂອງໜ້າຕ່າງ • glColor3f (0.0,0.0,1.0); ກ ໍ ານົດສີວັດຖຸ • glPointSize (4.0); ກ ໍ ານົດຂະໜາດຂອງຈຸດ • glMatrixMode (GL_PROJECTION); ກ ໍ ານົດparameter ສ ໍາລັບເບິ່ ງພາບ ໃຊງານຮ່ວມກັບຟັງຊັນglOtho() • gluOrtho2D(0.0,830.0,0.0,1080.0);ການສາຍພາບ 2ມິຕິ 3ມິຕິອອກທາງຈໍພາບ 1 1 1 1. . . .3 3 3 3 Function Function Function Function ພື້ນຖານທີ່ ໃຊ້ໃນການແຕ້ມມີ ພື້ນຖານທີ່ ໃຊ້ໃນການແຕ້ມມີ ພື້ນຖານທີ່ ໃຊ້ໃນການແຕ້ມມີ ພື້ນຖານທີ່ ໃຊ້ໃນການແຕ້ມມີ • GL_COLOR_BUFFER_BIT ລົບລ້າງຄ່າສີໃນ Buffer • GL_POLYGON ໃຊ້ເພື່ ອແຕ້ມຮູບຫຼາຍຫຼ່ຽມ • GL_LINES ໃຊ້ເພື່ອແຕ້ມເສັ້ນຊື່ລະຫ່ວາງສອງຈຸດ • GL_LINES_LOOP ໃຊ້ເພື່ ອແຕ້ມເສັ້ນຊື່ລະຫວ່າງສອງຈຸດໂດຍທີ່ຈຸດສຸດທ້າຍຈະມາ ເຊື່ອມຕໍ່ກັບຈຸດເລີ່ມຕົ້ນຄືນ
  3. pg. 3 1 1 1 1. . . .4 4

    4 4 Function Function Function Function ສ ໍາລັບໃຫ້ ສ ໍາລັບໃຫ້ ສ ໍາລັບໃຫ້ ສ ໍາລັບໃຫ້ສະແດງຜົນ ສະແດງຜົນ ສະແດງຜົນ ສະແດງຜົນ • glutInit (&argc, argv); ສ້າງໜ້າຕ່າງໃຫ້ສະແດງຜົນ • glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); ເພື່ ອເລືອກໂໝດການສະແດງ ຜົນ • glutInitWindowPosition (100,100); ກ ໍ າດໜົດຕ ໍາແໜ່ງຂອງໜ້າຕ່າງເທິງ monitor ຕອນສະແດງຜົນຄັ້ງທ ໍ າອິດ • glutInitWindowSize (1000,800); ກ ໍ ານ ົດຂະໜາດຂອງຄວາມຍາວແລະຄວາມສູງ ຂອງໜ້າຕ່າງ • glutCreateWindow ("The bedroom"); ກ ໍ ານ ົດຂໍ້ຄວາມທີ່ ສະແດງຢູ່ເທິງTitlebar • init (); ເພື່ ອເອີ້ນໃຊ້ທີ່ ກ ໍ ານ ົດຄ່າເລີ່ ມຕົ້ນຂອງໂປຣແກຣມ • glutDisplayFunc (myDisplay); ເພື່ອສະແດງສິ່ງທີ່ ສ້າງຂື້ນໃນຟັງຊັນຂອງເຮົາ • glutKeyboardFunc(Keyboard); ເພື່ອເອີ້ນໃຊ້ຄ ໍາສັ່ງເທີງ • glutMainLoop (); ສະແດງຜົນງານກຣາຟິກໄປເລື້ອຍໆຈ ົນກວ່າຈະສັ່ງໃຫ້ຢຸດ 1 1 1 1. . . .5 5 5 5 ຄ ໍາ ຄ ໍາ ຄ ໍາ ຄ ໍາສັ່ງ ສັ່ງ ສັ່ງ ສັ່ງໃນ ໃນ ໃນ ໃນການ ການ ການ ການສ້າງ ສ້າງ ສ້າງ ສ້າງຈຸດ ຈຸດ ຈຸດ ຈຸດ • glVertex2i (x,y); ສ້າງຈຸດຕາມແກນ X ແລະ Y 2. 2. 2. 2. ຄວາມສາມາດ ຄວາມສາມາດ ຄວາມສາມາດ ຄວາມສາມາດຂອງ ຂອງ ຂອງ ຂອງໂປ ໂປ ໂປ ໂປຮ ຮ ຮ ຮແກ ແກ ແກ ແກຮມ ຮມ ຮມ ຮມ - - - -ສາມາດຂະຍາຍອອກໄດ້ - - - -ສາມາດຫຍໍ້ຊະໜາດໄດ້ II. ພາກ ພາກ ພາກ ພາກປະຕິບັດ ປະຕິບັດ ປະຕິບັດ ປະຕິບັດ 1. 1. 1. 1.ສະ ສະ ສະ ສະເໜີ ເໜີ ເໜີ ເໜີການ ການ ການ ການເຮັດ ເຮັດ ເຮັດ ເຮັດວຽກ ວຽກ ວຽກ ວຽກຂອງ ຂອງ ຂອງ ຂອງໂປ ໂປ ໂປ ໂປຮ ຮ ຮ ຮແກ ແກ ແກ ແກຮມ ຮມ ຮມ ຮມ -ກ ົດ rຢູ່ຄິບອດຮູບຈະຫຍໍ້ລົງ -ກ ົດ fຮູບຈະຂະຫຍາຍອອກ
  4. pg. 4 2. 2. 2. 2.ໂຄດ ໂຄດ ໂຄດ ໂຄດແລະ ແລະ

    ແລະ ແລະຮູບ ຮູບ ຮູບ ຮູບພາບ ພາບ ພາບ ພາບ #include<glut.h> void init (void){ glColor3f(1.0,1.0,1.0); glPointSize(4.0); glMatrixMode(GL_PROJECTION); gluOrtho2D(-5.0,5.0,-5.0,5.0);//keyboardAssign glOrtho(-1,1,-1,1,-1,1);//ModelView glMatrixMode(GL_MODELVIEW); glClearColor(1.0,1.0,1.0,1.0); glColor3f(1.0,1.0,1.0); glMatrixMode(GL_PROJECTION); gluOrtho2D(-5.0,5.0,-5.0,5.0);//keyboardAssign glLoadIdentity(); gluOrtho2D(0.0,830.0,0.0,1080.0); } void myDisplay2(void) { glClear(GL_COLOR_BUFFER_BIT);//KeyboardAssign glPushMatrix();//KeyboardAssign glEnd();//KeyboardAssign glBegin(GL_POLYGON); //glColor3f(0.60,0.45,0.12); glColor3d(0.3,0.3,0.1); glVertex2i(48,58); glVertex2i(780,60); // si puen glVertex2i(780,1020); glVertex2i(48,1020); glEnd(); } void myDisplay(void) { glClear(GL_COLOR_BUFFER_BIT);//KeyboardAssign glPushMatrix();//KeyboardAssign glEnd();//KeyboardAssign glBegin(GL_POLYGON); //glColor3f(0.60,0.45,0.12); glColor3d(0.3,0.3,0.1); glVertex2i(48,58); glVertex2i(780,60); // si puen glVertex2i(780,1020); glVertex2i(48,1020); glEnd(); glBegin(GL_POLYGON); //TOOO glColor3f(1.0,1.0,1.0); glVertex2i(145,565); //A
  5. pg. 5 glVertex2i(300,605); //B glVertex2i(450,350); //C glVertex2i(280,300); //D glEnd(); glBegin(GL_POLYGON);

    //TOOO glColor3f(0.68,0.5,0.40); glVertex2i(145,565); //A1 glVertex2i(280,300); //D1 glVertex2i(280,250); //D2 glVertex2i(145,515); //A2 glEnd(); glBegin(GL_POLYGON); //TOOO glColor3f(0.68,0.5,0.40); glVertex2i(450,350); //C1 glVertex2i(280,300); //D1 glVertex2i(280,250); //D2 glVertex2i(450,300); //C2 glEnd(); glBegin(GL_POLYGON); // KAR D glColor3f(0.68,0.5,0.40); glVertex2i(280,300); //D1 glVertex2i(300,305); //R1 glVertex2i(300,205); //R2 glVertex2i(280,200); //D2 glVertex2i(260,235); //L2 glVertex2i(260,305); //L1 glEnd(); glBegin(GL_POLYGON); // KAR C glColor3f(0.68,0.5,0.40); glVertex2i(450,350); //C1 glVertex2i(430,340); //L1 glVertex2i(410,330); //R1 glVertex2i(410,275); //R2 glVertex2i(430,245); //L2 glVertex2i(450,250); //C2 glEnd(); glBegin(GL_POLYGON); // KAR A glColor3f(0.68,0.5,0.40); glVertex2i(145,565); //A1 glVertex2i(145,465); //A2 glVertex2i(165,425); //R2 glVertex2i(190,425); //L2 glVertex2i(190,470); //L1 glVertex2i(165,500); //R1 glEnd(); glBegin(GL_LINE_LOOP); //TOOO glColor3f(0.0,0.0,0.0); glVertex2i(145,565); //A glVertex2i(300,605); //B glVertex2i(450,350); //C glVertex2i(280,300); //D glEnd();
  6. pg. 6 glBegin(GL_LINE_LOOP); //TOOO glColor3f(0.0,0.0,0.0); glVertex2i(145,565); //A1 glVertex2i(280,300); //D1 glVertex2i(280,250);

    //D2 glVertex2i(145,515); //A2 glEnd(); glBegin(GL_LINE_LOOP); //TOOO glColor3f(0.0,0.0,0.0); glVertex2i(450,350); //C1 glVertex2i(280,300); //D1 glVertex2i(280,250); //D2 glVertex2i(450,300); //C2 glEnd(); glBegin(GL_LINES); //TOOO glColor3f(0.0,0.0,0.0); glVertex2i(280,300); //D1 glVertex2i(280,200); //D2 glEnd(); glBegin(GL_LINES); //TOOO glColor3f(0.0,0.0,0.0); glVertex2i(430,290); //L1 glVertex2i(430,245); //L2 glEnd(); glBegin(GL_LINES); //TOOO glColor3f(0.0,0.0,0.0); glVertex2i(165,425); //R2 glVertex2i(165,480); //R1 glEnd(); glBegin(GL_POLYGON); // BOOK1 glColor3f(1.0,0.78,0.0); glVertex2i(315,450); glVertex2i(290,490); glVertex2i(240,480); glVertex2i(263,440); glEnd(); glBegin(GL_POLYGON); // BOOK2 glColor3f(1.0,0.78,0.44); glVertex2i(335,440); glVertex2i(310,480); glVertex2i(260,470); glVertex2i(283,430); glEnd(); glBegin(GL_POLYGON); // BOOK3 glColor3f(0.0,0.78,0.44); glVertex2i(355,430); glVertex2i(330,470); glVertex2i(280,460); glVertex2i(303,420); glEnd(); /////////////////// glBegin(GL_POLYGON); /*glColor3f(1.5,1.3,0.7);*/ glColor3f(1.0,1.0,1.0); glVertex2i(600,350); glVertex2i(400,650); glVertex2i(550,680); glVertex2i(750,400); // sofa
  7. pg. 7 glEnd(); ///////////// glBegin(GL_LINES); glColor3f(0.0,0.0,0.0); glVertex2i(400,650); glVertex2i(550,680); // LAIY

    sofa 1 glEnd(); ///////////// //glBegin(GL_LINES); //glColor3f(0.0,0.0,0.0); //glVertex2i(550,680); //glVertex2i(750,400); // LAIY sofa 2 //glEnd(); ///////////// glBegin(GL_POLYGON); // karng khop sofa glColor3f(0.68,0.5,0.40); glVertex2i(600,350); glVertex2i(600,300); glVertex2i(400,600); glVertex2i(400,650); glEnd(); //////////////////// glBegin(GL_POLYGON); // kar khop sofa roup 1 //glColor3f(0.98,0.04,0.70); glColor3f(0.68,0.5,0.40); glVertex2i(600,300); glVertex2i(585,340); glVertex2i(585,260); glVertex2i(600,240); glEnd(); //////////////////// glBegin(GL_POLYGON); // kar khop sofa roup 2 //glColor3f(0.98,0.04,0.70); glColor3f(0.68,0.5,0.40); glVertex2i(600,300); glVertex2i(612,305); glVertex2i(612,240); glVertex2i(600,240); glEnd(); //////////////////// glBegin(GL_LINES); // kar khop sofa roup 3 glColor3f(0.0,0.0,0.0); glVertex2i(600,300); glVertex2i(600,240);
  8. pg. 8 glEnd(); ///////////////// glBegin(GL_LINES); // kar khop sofa roup

    4 glColor3f(0.0,0.0,0.0); glVertex2i(612,240); glVertex2i(600,240); glEnd(); /////////////////// glBegin(GL_LINES); // kar khop sofa roup 5 glColor3f(0.0,0.0,0.0); glVertex2i(612,240); glVertex2i(612,305); glEnd(); ///////////// glBegin(GL_LINES); // kar khop sofa roup 6 glColor3f(0.0,0.0,0.0); glVertex2i(600,300); glVertex2i(612,302); glEnd(); ////////////////// glBegin(GL_POLYGON); // kar khop sofa roup kua 1 //glColor3f(0.98,0.04,0.70); glColor3f(0.68,0.5,0.40); glVertex2i(750,350); glVertex2i(750,280); glVertex2i(740,280); glVertex2i(740,348); glEnd(); ///////////////// glBegin(GL_POLYGON); // kar khop sofa roup kua 2 //glColor3f(0.98,0.04,0.70); glColor3f(0.68,0.5,0.40); glVertex2i(740,348); glVertex2i(725,340); glVertex2i(725,300); glVertex2i(740,280); glEnd(); ///////////////// glBegin(GL_LINES); // kar khop sofa roup kua 3 glColor3f(0.0,0.0,0.0); glVertex2i(750,350); glVertex2i(750,280); glEnd();
  9. pg. 9 ///////////////// glBegin(GL_LINES); // kar khop sofa roup kua

    4 glColor3f(0.0,0.0,0.0); glVertex2i(740,280); glVertex2i(740,348); glEnd(); //////////////// glBegin(GL_LINES); // kar khop sofa roup kua 5 glColor3f(0.0,0.0,0.0); glVertex2i(750,348); glVertex2i(740,345); glEnd(); ///////////////// glBegin(GL_LINES); // kar khop sofa roup kua 1 glColor3f(0.0,0.0,0.0); glVertex2i(750,280); glVertex2i(740,280); glEnd(); ///////////////// glBegin(GL_POLYGON); // kar khop sofa //glColor3f(0.98,0.04,0.70); glColor3f(0.68,0.5,0.40); glVertex2i(400,600); glVertex2i(414,580); glVertex2i(414,520); glVertex2i(400,540); glEnd(); //////////////////// glBegin(GL_POLYGON); // kar khop sofa //glColor3f(0.98,0.04,0.70); glColor3f(0.68,0.5,0.40); glVertex2i(414,580); glVertex2i(425,560); glVertex2i(425,520); glVertex2i(414,520); glEnd(); ///////////////// glBegin(GL_LINES); // laiy kar khop sofa glColor3f(0.0,0.0,0.0); glVertex2i(414,580); glVertex2i(414,520); glEnd(); ///////////////// glBegin(GL_LINES); // laiy kar khop sofa glColor3f(0.0,0.0,0.0);
  10. pg. 10 glVertex2i(414,580); glVertex2i(425,560); glEnd(); ///////////////// glBegin(GL_LINES); // laiy kar

    khop sofa glColor3f(0.0,0.0,0.0); glVertex2i(425,560); glVertex2i(425,520); glEnd(); ///////////////// glBegin(GL_LINES); // laiy kar khop sofa glColor3f(0.0,0.0,0.0); glVertex2i(425,520); glVertex2i(414,520); glEnd(); ///////////////// glBegin(GL_POLYGON); // karng khop sofa glColor3f(1.0,1.0,1.0); glVertex2i(600,350); glVertex2i(600,330); glVertex2i(400,630); glVertex2i(400,650); glEnd(); //////////////////// glBegin(GL_LINES); // LAIY SIEN sofa glColor3f(0.0,0.0,0.0); glVertex2i(600,350); glVertex2i(400,650); glEnd(); //////////////// //////////////////// /////////////////////////////// glBegin(GL_LINES); // LAIY TUENG sofa //glColor3f(0.98,0.04,0.70); glVertex2i(400,650); glVertex2i(400,670); glEnd(); glBegin(GL_POLYGON); // karng khop sofa //glColor3f(0.98,0.04,0.70); glColor3f(0.68,0.5,0.40); glVertex2i(600,350); glVertex2i(600,300); glVertex2i(750,350); glVertex2i(750,400); glEnd();
  11. pg. 11 ////////////////////// glBegin(GL_POLYGON); // karng khop sofa glColor3f(1.0,1.0,1.0); glVertex2i(600,350);

    glVertex2i(600,330); glVertex2i(750,380); glVertex2i(750,400); glEnd(); ///////////////////// glBegin(GL_LINES); // LAIY sofa 2 glColor3f(0.0,0.0,0.0); glVertex2i(600,350); glVertex2i(750,400); glEnd(); ////////// glBegin(GL_LINES); // karng khop sofa glColor3f(0.0,0.0,0.0); glVertex2i(600,350); glVertex2i(600,330); glEnd(); ///////////////////// glBegin(GL_POLYGON); // sien baeg sofa 1 /* glColor3d(0.60,0.45,0.12);*/ glColor3f(1.5,1.3,0.7); glVertex2i(550,710); glVertex2i(550,1020); glVertex2i(780,1020); glVertex2i(780,400); glEnd(); /////////////////////////////// glBegin(GL_POLYGON); //khorp pong yiam glColor3f(0.50,0.30,0.30); glVertex2i(650,710); glVertex2i(650,1020); glVertex2i(780,940); glVertex2i(780,550); glEnd(); ////////////////////////////////// glBegin(GL_POLYGON); //pong yiam xai glColor3f(0.0,0.30,0.30); glVertex2i(660,720); glVertex2i(660,1000); glVertex2i(705,970); glVertex2i(705,663); glEnd(); ////////////////////////////////// glBegin(GL_POLYGON); //pong yiam khuas glColor3f(0.0,0.30,0.30); glVertex2i(715,650); glVertex2i(715,965); glVertex2i(770,930); glVertex2i(770,580); glEnd(); ////////////////////////////////// glBegin(GL_POLYGON); //Sein beng pong yiam
  12. pg. 12 glColor3f(0.50,0.30,0.30); glVertex2i(705,663); glVertex2i(705,970); glVertex2i(715,965); glVertex2i(715,650); glEnd(); ////////////////////////////////// glBegin(GL_POLYGON);

    // sien baeg sofa 2 //glColor3d(0.60,0.45,0.12); glColor3f(1.5,1.3,0.7); glVertex2i(550,710); glVertex2i(550,1020); glVertex2i(50,1020); glVertex2i(50,600); glEnd(); /////////////////////////////// glBegin(GL_LINES); // sien baeg sofa 5 glColor3f(0.0,0.0,0.0); glVertex2i(550,710); glVertex2i(50,600); glEnd(); /////////////////////////////////////// glBegin(GL_POLYGON); // legs of the table glColor3f(0.68,0.5,0.40); glVertex2i(140,530); glVertex2i(100,610); glVertex2i(100,780); glVertex2i(140,700); glEnd(); glBegin(GL_LINE_LOOP); // Line legs glColor3f(0.6,0.0,0.6); glVertex2i(140,530); glVertex2i(100,610); glVertex2i(100,780); glVertex2i(140,700); glEnd(); /////////////////////////////// glBegin(GL_POLYGON); // legs of the table glColor3f(0.68,0.5,0.40); glVertex2i(340,740); glVertex2i(340,570); glVertex2i(300,650); glVertex2i(300,732); glEnd(); glBegin(GL_LINE_LOOP); // line legs of the table glColor3f(0.0,0.0,0.0); glVertex2i(340,740); glVertex2i(340,570); glVertex2i(300,650); glVertex2i(300,732); glEnd(); /////////////////////////////// glBegin(GL_POLYGON); // table glColor3f(0.68,0.5,0.40); glVertex2i(340,740);
  13. pg. 13 glVertex2i(300,810); glVertex2i(98,780); glVertex2i(138,700); glEnd(); /////////////////////////////// glBegin(GL_LINE_LOOP); // sien

    table glColor3f(0.0,0.0,0.0); glVertex2i(340,740); glVertex2i(300,810); glVertex2i(98,780); glVertex2i(138,700); glEnd(); //////////////////////////////// glBegin(GL_POLYGON); // khorp to glColor3f(0.68,0.5,0.40); glVertex2i(340,740); glVertex2i(340,720); glVertex2i(138,680); glVertex2i(138,700); glEnd(); glBegin(GL_LINE_LOOP); //sien khorp to glColor3f(0.0,0.0,0.0); glVertex2i(340,740); glVertex2i(340,720); glVertex2i(138,680); glVertex2i(138,700); glEnd(); //////////////////////// // glBegin(GL_POLYGON); // book //glColor3f(0.68,0.68,0.0); //glVertex2i(315,350); //glVertex2i(290,390); //glVertex2i(240,380); //glVertex2i(263,340); //glEnd(); // glBegin(GL_POLYGON); // //glColor3f(0.68,0.68,0.0); //glVertex2i(215,350); //glVertex2i(190,390); //glVertex2i(140,380); //glVertex2i(163,340); //glEnd(); ///////////////////////////////// glBegin(GL_LINES); // sien baeg tieng 3 glColor3f(0.0,0.0,0.0); glVertex2i(550,710); glVertex2i(550,1020); glEnd(); /////////////////////////////// glBegin(GL_LINES); // sien baeg tieng 4 glColor3f(0.0,0.0,0.0); glVertex2i(550,710); glVertex2i(780,400);
  14. pg. 14 glEnd(); /////////////// UN EENG glBegin(GL_POLYGON); glColor3f(0.68,0.5,0.40); glVertex2i(500,670); //

    THRNG ZAIY glVertex2i(700,385); // LOM ZAIY glVertex2i(750,400); // LOM KHUA glVertex2i(750,600); glVertex2i(550,850); glVertex2i(520,845); glVertex2i(550,680); // TRNG KUA glEnd(); glBegin(GL_POLYGON); glColor3f(1.0,1.0,1.0); glVertex2i(700,385); glVertex2i(720,595); glVertex2i(520,845); glVertex2i(500,670); glEnd(); glBegin(GL_LINE_LOOP); glColor3f(0.0,0.0,0.0); glVertex2i(500,670); // THRNG ZAIY glVertex2i(700,385); glVertex2i(750,400); // LOM KHUA glVertex2i(750,600); glVertex2i(550,850); glVertex2i(520,845); // TRNG KUA glEnd(); glBegin(GL_LINE_STRIP); glColor3f(0.0,0.0,0.0); glVertex2i(700,385); glVertex2i(720,595); glVertex2i(520,845); glEnd(); glBegin(GL_LINES); glColor3f(0.0,0.0,0.0); glVertex2i(720,595); glVertex2i(750,600); glEnd(); /////////// glBegin(GL_POLYGON); // khop jor tv glColor3f(0.0,0.0,0.0); glVertex2i(300,990); glVertex2i(140,980); glVertex2i(140,820); glVertex2i(300,830); glEnd(); glBegin(GL_POLYGON); // kar tv glColor3f(0.0,0.0,0.0); glVertex2i(240,900); glVertex2i(200,900); glVertex2i(200,770); glVertex2i(240,775); glEnd();
  15. pg. 15 glBegin(GL_POLYGON); // phuen tv glColor3f(0.0,0.0,0.0); glVertex2i(260,790); glVertex2i(180,780); glVertex2i(180,740);

    glVertex2i(260,750); glEnd(); glBegin(GL_POLYGON); // nai jor tv glColor3f(1.00,1.00,1.00); glVertex2i(290,980); glVertex2i(150,970); //thrng zaiy glVertex2i(150,830); // lom zaiy glVertex2i(290,840); glEnd(); glBegin(GL_TRIANGLES); // pheip glColor3f(0.68,0.68,0.1); glVertex2i(220,965); // 220 , 785 glVertex2i(280,850); // 220 , 745 glVertex2i(160,840); glEnd(); glBegin(GL_TRIANGLES); // pheip glColor3f(0.1,0.0,0.0); glVertex2i(220,940); // 220 , 785 glVertex2i(250,865); // 220 , 745 glVertex2i(190,860); glEnd(); glPopMatrix();//KeyboardAssign glutSwapBuffers();//KeyboardAssign glFlush(); } void Keyboard(unsigned char key,int x,int y) { switch (key) { case 'r': glutReshapeWindow(400,300); glutPostRedisplay(); break; case 'f': glutReshapeWindow(1200,700); glutPostRedisplay(); break; } } void main(int argc,char** argv) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); glutInitWindowPosition(100,100); glutInitWindowSize(1000,680); glutCreateWindow("MY ROOM"); init();
  16. pg. 16 glutDisplayFunc(myDisplay); glutKeyboardFunc(Keyboard); glutMainLoop(); } - - - -ຮູບ

    ຮູບ ຮູບ ຮູບພາບ ພາບ ພາບ ພາບ: : : :
  17. pg. 17 III III III III. . . . ສະຫຼຸບ

    ສະຫຼຸບ ສະຫຼຸບ ສະຫຼຸບ: : : : ສ ໍາລັບໂປຮແກຮມນີ້ແມ່ນສ້າງໃຫ້ວັດຖຸມີການຂະຫຍາຍແລະຫຍໍ້ໂດຍນ ໍາໃຊ້ບົດຮຽນທີ່ ຮຽນມາ ໃນການສ້າງບົດສອງມີຕີນີ້ຂື້ນມາການຂຽນໂປຮແກຮມຄັ້ງນີ້ເກີດຂື້ນມາໄດ້ກໍ່ຍ້ອນມີອາຈານ ນ ໍາພາຈຶ່ງເຮັດໃຫ້ບົດນີ້ສ ໍາເລັດໄດ້. ຂໍ້ຄົງຄ້າງ ຂໍ້ຄົງຄ້າງ ຂໍ້ຄົງຄ້າງ ຂໍ້ຄົງຄ້າງ: : : :ວັດຖຸບໍ່ສາມາດເຄື່ອນເໜັງໄດ້ ແລະບໍ່ສາມາດປ່ຽນຮູບໄດ້ຫຼາຍຢ່າງ ແນວທາ ແນວທາ ແນວທາ ແນວທາງ ງ ງ ງໃນ ໃນ ໃນ ໃນການ ການ ການ ການພັດທະນາ ພັດທະນາ ພັດທະນາ ພັດທະນາ: : : :ໃນອະນາຄົດຈະພະຍາຍາມສຶກສາຕື່ມອີກແລ້ວຈະມາດັດແປງ ວັດຖຸນີ້ໃຫ້ມີການເຄື່ອນເໜັງແລະສາມາດປ່ຽນຮູບໄດ້ຫຼາຍຢ່າງ.