2024年4月18日 星期四

電腦圖學 Week09

 

  1. 桌面安裝freeglut把lib的libfreeglut.a複製改名成libglut32.a
  2. File-NewProject,GLUT專案week09-0_sample
  3. week09-0_sample
  4. Setting-Compiler要加入OpenCV相關的 3個設定
  5. -compiler的include要加入 C:\OpenCV2.1\include 
    -linker的lib要加入C:\OpenCV\lib
    -linker設定 ,要加入cv210 cxcore210 highgui210

  6. 安裝git,開啟git bash小黑
    cd desktop
    git clone https://github.com/hoodini2000/2024graphicsa
    cd 202dgraphicsz
    start.

  7. 把上週week08-3_glm_gundam_opencv_texture_lighting開起來
    file-open到那個目錄,點開 .cbp
    Build&Run就可以!
  8. 把剛剛的專案變成week09-1_glm_gundam_opencv_texture_lighting
    先關掉close project
    目錄:把整個week08-3_glm_gundam_opencv_texture_lighting複製到多面的
    week09-1_glm_gundam_opencv_texture_lighting再把week
  9. 檔名:把新目錄裡的專案檔week08-3_glm_gundam_opencv_texture_lighting.cbp
    改黨名變成week09-1_glm_gundam_opencv_texture_lighting.cbp
  10. CodeBlocks file-open開啟week09-1_glm_gundam_opencv_texture_lighting
  11. 再把專案title改成week09-1_glm_gundam_opencv_texture_lighting
    就是用notepad++開啟week09-1_glm_gundam_opencv_texture_lighting把裡面的
    week08-3都改成week09-1就好,記得存檔



  12. 再用CodeBlocks  file-open開它,就好了


  13. week09-2_glutSolidTeapot_glutSolidCube_glutSolidSphere
    file-new-project,glut專案
  14. 貼上11行程式碼
    程式碼:
    1. #include <GL/glut.h>
    2. void display()
    3. {
    4. glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    5. glutSolidTeapot(0.3);
    6. glutSwapBuffers();
    7. }
    8. int main(int argc, char*argv[])
    9. {
    10. glutInit(&argc, argv);
    11. glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    12. glutCreateWindow("week09 Microsoft Visual Studio");
    13. glutDisplayFunc(display);
    14. glutMainLoop();
    15. }

  15. glutSolidTeapot(0.3);改成glutSolidCube(0.3);

  16. glutSolidCube(0.3);再改成glutSolidSphere(0.3,30,30);//原先的程式碼要註解掉

  17. 程式碼:
    1. #include <GL/glut.h>
    2. void display()
    3. {
    4. glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    5. glPushMatrix();
    6.         glTranslatef(-0.5,+0.3,0);
    7.         glutSolidTeapot(0.3);
    8.     glPopMatrix();
    9.     glPushMatrix();
    10.         glTranslatef(+0.0,+0.3,0);
    11.         glutSolidCube(0.3);
    12. glPopMatrix();
    13. glPushMatrix();
    14.         glTranslatef(+0.5,+0.3,0);
    15.         glutSolidSphere(0.3,30,30);
    16. glPopMatrix();
    17. glutSwapBuffers();
    18. }
    19. int main(int argc, char*argv[])
    20. {
    21. glutInit(&argc, argv);
    22. glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    23. glutCreateWindow("week09 Microsoft Visual Studio");
    24. glutDisplayFunc(display);
    25. glutMainLoop();
    26. }

  18. week09-3_glutWireTeapot_glutWireCube_glutWireSphere
  19. 貼上week09-2_glutSolidTeapot_glutSolidCube_glutSolidSphere的程式碼,然後再增加程式碼跟把座標改一下不要讓它重疊
    程式碼:
    1. #include <GL/glut.h>
    2. void display()
    3. {
    4. glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    5. glPushMatrix();
    6.         glTranslatef(-0.5,+0.3,0);
    7.         glutSolidTeapot(0.3);
    8.     glPopMatrix();
    9.     glPushMatrix();
    10.         glTranslatef(+0.0,+0.3,0);
    11.         glutSolidCube(0.3);
    12. glPopMatrix();
    13. glPushMatrix();
    14.         glTranslatef(+0.5,+0.3,0);
    15.         glutSolidSphere(0.3,30,30);
    16. glPopMatrix();

    17. glPushMatrix();
    18.         glTranslatef(-0.5,-0.3,0);
    19.         glutWireTeapot(0.3);
    20.     glPopMatrix();
    21.     glPushMatrix();
    22.         glTranslatef(+0.0,-0.3,0);
    23.         glutWireCube(0.3);
    24. glPopMatrix();
    25. glPushMatrix();
    26.         glTranslatef(+0.5,-0.3,0);
    27.         glutWireSphere(0.3,30,30);
    28. glPopMatrix();
    29. glutSwapBuffers();

    30. }
    31. int main(int argc, char*argv[])
    32. {
    33. glutInit(&argc, argv);
    34. glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    35. glutCreateWindow("week09 Microsoft Visual Studio");
    36. glutDisplayFunc(display);
    37. glutMainLoop();
    38. }

沒有留言:

張貼留言