| Week 03 |
§移動 Translate§
●02
●03
解完長這樣→
-------------------------------------------------------------------------------------------------------------------
●01
跟week01 GLUT步驟相同
一樣先開啟GLUT
●02
◎程式碼
#include <GL/glut.h> ///使用GL/glut外掛
void display()
{
glPushMatrix();///備份矩陣
glTranslatef(0.5,0.5,0);///Translate移動x,y,z
glutSolidTeapot(0.3);
glPopMatrix();///還原矩陣
glutSwapBuffers();///glut開頭,表示是glut的程式
}
int main(int argc,char ** argv)///主要程式main
{ ///函式定義,有參數,不用管他
glutInit( &argc,argv); ///初始化GLUT功能 Init
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week03");
glutDisplayFunc(display); ///要display的函式叫display
glutMainLoop();
}
#include <GL/glut.h>
float x=0,y=0;
void display()
{
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glPushMatrix();///座標換算正確,(x-中間點)/最大值.0
glTranslatef((x-150)/150.0,(y-150)/150.0,0);
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();
///glut開頭,表示是glut的程式
}
void motion(int nowx,int nowy)
{
x=nowx;y=nowy; ///更新x,y
display(); ///再畫display(),畫面會更新,他會跟者動(滑鼠去拖它)
}
int main(int argc,char ** argv)///主要程式main
{
glutInit( &argc,argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week03");
glutDisplayFunc(display);
glutMotionFunc(motion); ///滑鼠有動作motion時,要叫motion()
glutMainLoop();
}
●02
glTranslatef(0.5,0.5,0);
Translate移動x,y,z
◎程式碼
#include <GL/glut.h> ///使用GL/glut外掛
void display()
{
glPushMatrix();///備份矩陣
glTranslatef(0.5,0.5,0);///Translate移動x,y,z
glutSolidTeapot(0.3);
glPopMatrix();///還原矩陣
glutSwapBuffers();///glut開頭,表示是glut的程式
}
int main(int argc,char ** argv)///主要程式main
{ ///函式定義,有參數,不用管他
glutInit( &argc,argv); ///初始化GLUT功能 Init
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week03");
glutDisplayFunc(display); ///要display的函式叫display
glutMainLoop();
}
#include <GL/glut.h>
float x=0,y=0;
void display()
{
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glPushMatrix();///座標換算正確,(x-中間點)/最大值.0
glTranslatef((x-150)/150.0,(y-150)/150.0,0);
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();
///glut開頭,表示是glut的程式
}
void motion(int nowx,int nowy)
{
x=nowx;y=nowy; ///更新x,y
display(); ///再畫display(),畫面會更新,他會跟者動(滑鼠去拖它)
}
int main(int argc,char ** argv)///主要程式main
{
glutInit( &argc,argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week03");
glutDisplayFunc(display);
glutMotionFunc(motion); ///滑鼠有動作motion時,要叫motion()
glutMainLoop();
}
沒有留言:
張貼留言