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

groupcs7

Avatar for Kittixai Kittixai
February 24, 2013

 groupcs7

Mouse change color

Avatar for Kittixai

Kittixai

February 24, 2013

Other Decks in Programming

Transcript

  1. ອຈສອນ: ອາຈານ ນິລັນກຸນ ຊ ື່ກື່ ຸມ groupcs7 ທ້າວ ກິດຕິໄຊ ຫານລອດຊົມພູ

    ທ້າວ ທິລະສັກ ແກ້ວຫຼວງ ນາງ ພອນວິໄລ ນາງ ປານອມມິດ ສົກຮຽນ 2012-2013
  2. ພາກສະເໜີ  ການເອ ີ້ນໃຊີ້ libary ແລະ ການປະກາດຕົວປ່ຽນ #include <Windows.h> //include

    libary #include <Gl/glut.h> #include <math.h> float diffuseMaterial[4] = { 0.5, 0.5, 0.5, 1.0 }; int wid,heg;  ການສີ້າງ OBJECT void Drawucgen (float r) { glBegin(GL_TRIANGLES); //this draws triangle for(int ii = 0; ii < 360.00; ii++) //360 degree dots are taken { float theta = 2.0f * 3.1415926f * float(ii) / 90.00; float x = r * cosf(theta)*wid/heg; float y = r * sinf(theta)*heg/wid; glVertex2f(x+wid/2 , y+heg/2 );
  3. glVertex2f(wid/2 , heg/2 ); } glEnd(); //draw end } void

    init(void) { glClearColor (0.0, 0.0, 0.0, 0.0); glShadeModel (GL_FLAT); } void display(void) { int v=0; glClear (GL_COLOR_BUFFER_BIT); Drawucgen(wid);//it depends on the screen width glPushMatrix(); glFlush ();// forces codes to work }  ຟັງຊັນການປ່ຽນໂຄງສີ້າງ void reshape (int w, int h) { glViewport (0, 0, (GLsizei) w, (GLsizei) h); glMatrixMode (GL_PROJECTION);
  4. glLoadIdentity (); gluOrtho2D (0.0, (GLdouble) w, 0.0, (GLdouble) h); wid=w;

    heg=h; }  ຟັງຊັນເມົີ້າຄລິກ void mouse(int button, int state, int x, int y) { switch (button) { case GLUT_LEFT_BUTTON: glClearColor (1.0, 1.0, 1.0,1.0); if (state == GLUT_DOWN) { /* change red */ diffuseMaterial[0] += 0.1; if (diffuseMaterial[0] > 1.0) diffuseMaterial[0] = 0.0; glColor4fv(diffuseMaterial); glutPostRedisplay(); } break; case GLUT_MIDDLE_BUTTON: glClearColor (0.0,2555.0,175.0,175.0); if (state == GLUT_DOWN) { /* change green */
  5. diffuseMaterial[1] += 0.1; if (diffuseMaterial[1] > 1.0) diffuseMaterial[1] = 0.0;

    glColor4fv(diffuseMaterial); glutPostRedisplay(); } break; case GLUT_RIGHT_BUTTON: glClearColor (255.0, 0.0, 0.0, 0.0); if (state == GLUT_DOWN) { /* change blue */ diffuseMaterial[2] += 0.1; if (diffuseMaterial[2] > 1.0) diffuseMaterial[2] = 0.0; glColor4fv(diffuseMaterial); glutPostRedisplay(); } break; default: break; } }  ຟັງຊັນຄ ບອດເພ ່ອການປິດ
  6. void keyboardx (GLubyte key, int x, int y) { switch

    (key) { case 27: // ESC key to Exit exit(0); break; default: break; } }  ຟັງຊັນການສີ້າງ, ສະແດງມ,ສິີ້ນສຸດການເຮັດວຽກ int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); glutInitWindowSize (1000, 1000); glutInitWindowPosition (400,0); glutCreateWindow ("Mouse change Colors");
  7. glutMouseFunc(mouse); glutKeyboardFunc(keyboardx); init (); glutDisplayFunc(display); glutReshapeFunc(reshape); glutMainLoop(); return 0; }

     ໂປຣແກຣມນ ີ້ສາມາດປ່ຽນສ ດີ້ວຍການຄລິກເມົີ້າ  ສາມາດປ ດໂປຣແກຣມດີ້ວຍການກ ົດປຸ່ມ Esc ພາກປະຕິບັດ  ຜົນ Run ແລະ ວິທ ່ ການນ າໃຊີ້(ສາມາດປ່ຽນສ ພ ີ້ນ ຫຼັງແລະສ ຮູບໄດີ້ຫຼາຍສ ໂດຍການຄລິກເມົີ້າ)
  8. ພາກສະຫ ຼຸບ 1. ສະຫຼຸບໂດຍຫຍ ້ ເຫັນວື່າໂປຣແກຣມນີ້ສາມາດປື່ຽນສີທັງສີພ ້ນຫຼັງແລະສີຮູບໄດ້ຫຼາຍສີເຊິື່ງສາມາດປື່ຽນໄດ້ດ້ວຍ ການຄລິກຊ້າຍຫຼ ຂວາແລ້ວຄລິກຫຼາຍໆຄັ້ງເພ ື່ອການປື່ຽນສີຫຼາຍໆສີ.

    2. ແນວທາງໃນການພັດທະນາ  ໃຫີ້ສີ້າງຄ ເພ ່ ອການປັບຂະໜາດຂອງໜີ້າຕ່າງ  ສີ້າງຄ ເພ ່ ອຂະຫຍາຍຮູບແລະຫຍ ີ້ຮູບ  ປັບແຕ່ງໃຫີ້ງາມຂ ີ້ນກວ່າເກົ່າ 3. ຂ ້ຄົງຄ້າງ  ໂປຣແກຣມຍັງບ ສາມາດເພ ່ມລູກຫຼິີ້ນລຫຼາຍພ ສົມຄວນ  ມ ັກມ ປັນຫາໃໃນການແກີ້ໄຂໂຄດ