今日課程內容:
1.使用老師提供的網站(http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/)
2.下載三個檔案:data,win32,glut32.dll
2.按照上周的步驟,開啟codeblock的glut
1.將上次的茶壺程式碼先打上
2.透過更改程式碼使茶壺移動
#include <GL/glut.h>
void display()
{
glPushMatrix();///備份矩陣
glTranslatef(0.2,0.2,0);///translate移動 x,y,z,f浮點數
glutSolidTeapot(0.3);
glPopMatrix();///還原矩陣
glutSwapBuffers();
}///glut開頭,表示是glut的程式
int main(int argc,char ** argv)
{
glutInit( &argc,argv);///啟動glut
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("隱睪盛");///開啟的視窗名稱
glutDisplayFunc(display);
glutMainLoop();
}
3.更改程式碼,使茶壺可以拖曳移動
#include <GL/glut.h>
float x=0,y=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();///備份矩陣
glTranslatef((x-150)/150.0,-(y-150)/150.0,0);///translate移動 x,y,z,f浮點數
glutSolidTeapot(0.3);
glPopMatrix();///還原矩陣
glutSwapBuffers();
}///glut開頭,表示是glut的程式
void motion(int nowx,int nowy)
{
x=nowx; y=nowy;///更新x,y
display();///畫面會更新,他會跟著滑鼠動
}
int main(int argc,char ** argv)
{
glutInit( &argc,argv);///啟動glut
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("隱睪盛");///開啟的視窗名稱
glutDisplayFunc(display);
glutMotionFunc(motion);///mouse有動作motion時,要叫motion()
glutMainLoop();
}
沒有留言:
張貼留言