課堂作業1
http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/
把 windows.zip 和 data.zip解壓縮
將data的資料夾和glut32.dll放進windows的資料夾
這個的視角是繞車子的正中心點轉,地球自轉的概念。
右鍵swap交換之後,整台車子繞一個點轉,就像地球繞太陽公轉一樣。
課堂作業2
#include <GL/glut.h>
float rotX=0,rotY=0;
void display()
{
glClearColor(1,1,1,1); //白色的背景
glClear(GL_COLOR_BUFFER_BIT); //清掉背景
glPushMatrix(); //備份Martrix (Martrix裡有translate,rolate,scale的量值)
glRotatef(rotX, 0,1,0); //rotX為角度 ,x,y,z ////X的移動量,讓他對X軸轉
glRotatef(rotY,1,0,0); //y的移動量,讓他對Y軸轉
glColor3f(1,0,0);
glutSolidTeapot(0.3);
glPopMatrix(); //還原Martrix (回到剛剛push的狀態)
glutSwapBuffers();
}
void motion(int x, int y)
{
rotX=x; //拿來旋轉
display(); //glutPostReddisplay();
}
int main(int argc, char**argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH); //double buffers 兩倍記憶體
glutInitWindowSize(700,700); ///視窗大小
glutInitWindowPosition(200,0); ///視窗在螢幕開啟的起始位置
glutCreateWindow("hello3D");
glutInitWindowPosition(200,0); ///視窗在螢幕開啟的起始位置
glutCreateWindow("hello3D");
glutDisplayFunc(display);
glutMotionFunc(motion);
glutMainLoop();
}
靠X軸移動的畫面
靠Y軸移動的畫面
X軸和Y軸可一起改變的畫面
Q1-1:什麼是 glPushMatrix();
A1-1 記住自身的位置 。
Q1-2什麼是 glPopMartrix();?
A1-2回到之前濟助的位置。
Q2-1:什麼是 Buffers?
A2-1緩存器
Q2-2 :Double?
A2-2雙倍的 所以Double Biffers是雙倍記憶體,會先把輸入的先記起來不顯示,等到執行的時候再一起顯示出來
沒有留言:
張貼留言