2024年5月6日 星期一

小韓電腦圖學日誌 week12

# week12-1_obj_gundam_hand1_hand2

準備工作

0. 安裝freeglut , 把lib\libfreeglut.a 複製成 libglut32.a

1. 安裝OpenCV ,要勾 Add PATH , 然後重開CodeBlocks

2.在CodeBlocks Setting-Compiler 加入三個設定:

-Search directories 的 compiler要設定 C:\OpenCV2.1\include

-Search directories 的 linker要設定 C:\OpenCV2.1\lib

-Linker setting 要加入 cv210 , cxcore210, highgui210

再把week11-3_obj_gundam_hand1_hand2 複製到桌面並改檔名week12-1_obj_gundam_hand1_hand2

float angle=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glutSolidSphere(0.1,30,30);
    glPushMatrix();///加入旋轉
        ///glRotatef(angle++,0,1,0);
        glRotatef(angle++,0,0,1);
        glTranslatef(0,-0.3,0);
        glScalef(0.3, 0.3, 0.3);
        drawhand1();
    glPopMatrix();
    glutSwapBuffers();
}


#week12-2_obj_gundam_upper_lower_hand

要多宣告2顆指標
GLMmodel * upper = NULL;
GLMmodel *lower = NULL;

再把drawmodel()複製兩份, 分別叫void drawUpper()...和drawLower()... 裡面的pmodel 都改成 upper 或lower 

用MAYA裁出上手臂跟下手臂,檔案格式要選OBJExport




#week12-3_obj_gundam_body_upper_lower

用MAYA 切出 Gundam 身體

程式碼加上 GLMmodel *body =NULL;


# week12-4_keyboard_angleID_mouse_motion_angle

程式要加上

void keyboard(unsigned char key, int x , int y){
    if (key=='0') angleID = 0 ;
    if (key=='1') angleID = 1 ;
    if (key=='2') angleID = 2 ;
    if (key=='3') angleID = 3 ;
}

void motion(int x, int y){
    angle[angleID] = y;
}

再於 main() 裡,註冊 glutKeyboardFunc(keyboard) 和 glutMotionFunc(motion)

前面的 float angle = 0;
改用陣列來做事 float angle[20];
int angle=0;
最後,把display()裡,改成angle[0] 和angle [1]

# 上傳github




沒有留言:

張貼留言