2017年10月12日 星期四

LLF的計圖學習筆記_Week_05

課堂練習:下載data, win32, glut32.dll
並執行裡面的Transformation.exe、Projection.exe

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
函式:view相關
透視投影:
void gluPerspective(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar);
fovy:指定在y方向的視角角度
aspect:指定x方向視野的比例(y/x)
zNear、zFar:指定觀察者到可視最近、遠平面的距離

平行投影-正交投影:
void glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble nearVal, GLdouble farVal);   正方體
left、right:指定左、右剪切平面
bottom、top:指定上、下剪切平面
nearVal、farVal:指定近、遠剪切平面

指定視角:
void gluLookAt(GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, 
GLdouble centerX, GLdouble centerY, GLdouble centerZ, 
GLdouble upX, GLdouble upY, GLdouble upZ);
eyeX, eyeY, eyeZ:指定從哪裡看
centerX, centerY, centerZ :指定看哪裡
upX, upY, upZ :指定向上的向量

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
函式:keyborad相關
1)ASCII:
void glutKeyboardFunc(void(*func)(unsigned char key, int x, int y));
Week_04

2)F1、F2、↑、←、Home、Page Up......等:
void glutSpecialFunc(void(*func)(int key, int x, int y));
x, y:此時鼠標的位置(像素)(左上為0, 0、右下為W, H)
key:如下,判斷key==什麼
GLUT_KEY_F1  F1 function key
GLUT_KEY_F2  F2 function key
GLUT_KEY_F3  F3 function key
GLUT_KEY_F4  F4 function key
GLUT_KEY_F5  F5 function key
GLUT_KEY_F6  F6 function key
GLUT_KEY_F7  F7 function key
GLUT_KEY_F8  F8 function key
GLUT_KEY_F9  F9 function key
GLUT_KEY_F10  F10 function key
GLUT_KEY_F11  F11 function key
GLUT_KEY_F12  F12 function key
GLUT_KEY_LEFT  Left function key
GLUT_KEY_RIGHT  Right function key
GLUT_KEY_UP  Up function key
GLUT_KEY_DOWN  Down function key
GLUT_KEY_PAGE_UP Page Up function key
GLUT_KEY_PAGE_DOWN Page Down function key
GLUT_KEY_HOME  Home function key
GLUT_KEY_END  End function key
GLUT_KEY_INSERT  Insert function key
3)SHIFT、CTRL、ALT:
int glutGetModifiers(void);
回傳GLUT_ACTIVE_SHIFT、GLUT_ACTIVE_CTRL、GLUT_ACTIVE_ALT
@只能在處理鍵盤、鼠標輸入事件中呼叫@
如果同時要判斷兩個以上:
mod = glutGetModifiers();
if (mod == (GLUT_ACTIVE_CTRL|GLUT_ACTIVE_ALT))



沒有留言:

張貼留言