2024年4月18日 星期四

week09 電腦圖學

week09-0_sample

GLUT

開GLUT
去MOODLE載GLUT的ZIP
把最短的那一個複製貼上改名成libglut32.a
如下圖

開啟時把FREEGLUT的路徑複製貼上


 

week09-1_glm_gundam_opencv_texture_lighting

打開上禮拜的week08-3_glm_gundam_opencv_texture_lighting
安裝opencv 記得要add path
重開 codeblocks
安裝OpenCV2.1記得要Add PATH,不要改目錄
關閉重開CodeBlocks(才會把PATH設定設好,要記得存檔)
重作剛剛的glm.h glm.cpp放到目錄裡,把Gundam.obj Gundam.mtl及新的Diffuse.jpg都放到專案的data目錄裡
在專案裡,按右鍵Add Files把glm.cpp加入專案
(歷史餘毒)要把專案的工作執行目錄,換成小數點.
要把 桌面\freeglut\bin\freeglut.dll 複製到專案目錄裡
Setting-Compiler要加入OpenCV相關的3個設定
compiler include 要加入 C:\OpenCV2.1\include
linker 的 lib 要加 C:\OpenCV2.1\lib
linker 設定 要加cv210 cxcore210 highgui210
把上週的week08-3_glm_gundam_opencv_texture_lighting開起來
File-Open,到那個目錄,點開.cbp(CodeBlocks Project檔)
Build&Run就可以
把剛剛的專案,先關起來Close Project(這樣才不會被鎖)
目錄:把整個week08-3_glm_gundam_opencv_texture_lighting複製到桌面的week09-1_glm_gundam_opencv_texture_lighting再把week
檔案:把新目錄裡的專案檔week08-3_glm_gundam_opencv_texture_lighting.cbp改檔名變成week09-1_glm_gundam_opencv_texture_lighting.cbp
CodeBlocks File-Open開啟week09-1_glm_gundam_opencv_texture_lighting.cbp檔
再把專案的Title改成week09-1_glm_gundam_opencv_texture_lighting,就是用Notepad++開啟week09-1_glm_gundam_opencv_texture_lighting.cbp檔,把裡面的week08-3都改成week09-1就好了,記得存檔
再用CodeBlocks File-Open開它,就好了
為了騙的更真實,記得main.cpp裡的glutCreateWindow("week08_Gundan")改成glutCreateWindow("week09-1_Gundan")改得更徹底

week09-2_glutSolid_glutSolidCube_glutSolidSphere

放上11行程式碼
#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSolidTeapot(0.3);
glutSwapBuffers();
}
int main(int argc, char*argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week09 Microsoft Visual Studio");
glutDisplayFunc(display);
glutMainLoop();
}

然後加上 

glutSolidCube(0.3);

glutSolidSphere(0.3,30,30);


就會變成

#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
        glTranslatef(-0.5,+0.3,0);
        glutSolidTeapot(0.3);
glPopMatrix();
glPushMatrix();
        glTranslatef(-0.0,+0.3,0);
        glutSolidCube(0.3);
glPopMatrix();
glPushMatrix();
        glTranslatef(+0.5,+0.3,0);
        glutSolidSphere(0.3,30,30);
glPopMatrix();
glutSwapBuffers();
}
int main(int argc, char*argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week09 Microsoft Visual Studio");
glutDisplayFunc(display);
glutMainLoop();
}



week09-3_glutWire_glutWireCube_glutWireSphere


把Solid改成Wire

就會變成

#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
        glTranslatef(-0.5,+0.3,0);
        glutSolidTeapot(0.3);
glPopMatrix();
glPushMatrix();
        glTranslatef(-0.0,+0.3,0);
        glutSolidCube(0.3);
glPopMatrix();
glPushMatrix();
        glTranslatef(+0.5,+0.3,0);
        glutSolidSphere(0.3,30,30);
glPopMatrix();

glPushMatrix();
        glTranslatef(-0.5,-0.3,0);
        glutWireTeapot(0.3);
glPopMatrix();
glPushMatrix();
        glTranslatef(-0.0,-0.3,0);
        glutWireCube(0.3);
glPopMatrix();
glPushMatrix();
        glTranslatef(+0.5,-0.3,0);
        glutWireSphere(0.3,30,30);
glPopMatrix();
glutSwapBuffers();
}
int main(int argc, char*argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week09 Microsoft Visual Studio");
glutDisplayFunc(display);
glutMainLoop();
}


Git 指令

cd desktop

git clone https://github.com/mickey1132/2024-graphicsA

cd 2024-graphicsA

git status

git add .

git status

git config --global user.email mickylin1132@gmail.com

git config --global user.name mickey1132

git commit -m WeekXX

git push

沒有留言:

張貼留言