2017年10月19日 星期四

KK的筆記 week06

(1)複習上周進度
(2)編譯上周無法編譯的transformation程式
(3)作業2:Keyboard,Mouse,轉動,移動
(4)主軸:打光Lighting

--->zouvio填寫複習上周進度
再次將glut project所必需的要件先設置好
--->如何將上禮拜原本無法編譯的程式編譯
Ans:把codeblocks的compiler的c++11勾給拿掉就可以編譯了
開起打光Lighting
技巧:將transformation的程式碼解壓並找到source.zip,找到transformation.c範例
Search:light找到
glutCreateWindow(...)
|   glEnable(GL_DEPTH_TEST);
|   glEnable(GL_LIGHTING);
|   glEnable(GL_LIGHT0);
|   glLightfv(GL_LIGHT0,GL_POSITION,pos);
glutMainLoop();
並記得要把pos的陣列宣告在全域變數中,不然無法得知打光位置

加入Keyboard,Mouse
void keyboard(unsigned char key,int x,int y)
{
    printf("now: %c (%d %d)\n",key,x,y);
}
void mouse(int button ,int state,int x,int y)
{
    ;
}

加入rotateX,rotateY,rotateZ(旋轉值)
使用glutmotionfunction(motion);
使用mouse拖曳進行旋轉(mouse+motion大象放冰箱)
 void motion(int x,int y)
{
    rotateX+=-(x-oldX);
    rotateY+=-(y-oldY);
    oldX=x;oldY=y;
    glutPostRedisplay();
    printf("%d %d\n",x,y);
}
水平移動則垂直旋轉

垂直移動是水平旋轉



沒有留言:

張貼留言