(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);
}
水平移動則垂直旋轉

垂直移動是水平旋轉

沒有留言:
張貼留言