今天內容: 移動Translate
/1/
老師先傳送給我們這個網址: http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/
下載解壓縮[data][win32] glut32.dll
在桌面創一個windows的資料夾,把解壓縮後的data、win32、glut32.dill放進去
之後打開Transformation.exe
glTranslatef ->可平移鏡頭
glRotatef ->可旋轉鏡頭
glScalef ->可對模型進行拉伸, 壓縮
搜尋freeglut點進網址並下載解壓縮 (同week1)
/2/
再來是教我們如何把茶壺移動到右上
原先的程式碼為
#include <GL/glut.h>
void display()
{
glutSolidTeapot(0.3);//實心茶壺
glutSwapBuffers( );//交換buffer顯示
}
int main( int argc , char ** argv )
{
glutInit( &argc , argv );
glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH );//double預先存好下一張圖片等待buffer交換,depth是3D的程式碼,要讓建的模有深度
glutCreateWindow( "first window" );
glutDisplayFunc( display );//畫布類型的存在,要讓跑出來的東西有地方放
glutMainLoop( );
}
上面是只有茶壺的程式碼
但如果要讓茶壺往右上移動的話
要加一行程式碼
#include <GL/glut.h>
void display()
{
glTranslatef(0.5,0.5,0);
glutSolidTeapot(0.3);//實心茶壺
glutSwapBuffers( );//交換buffer顯示
}
int main( int argc , char ** argv )
{
glutInit( &argc , argv );
glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH );//double預先存好下一張圖片等待buffer交換,depth是3D的程式碼,要讓建的模有深度
glutCreateWindow( "first window" );
glutDisplayFunc( display );//畫布類型的存在,要讓跑出來的東西有地方放
glutMainLoop( );
}
執行後就會呈現
按一下後,這個茶壺就會跑到右上角
加上兩行程式碼:
glPushMatrix(); --> 備份矩陣
glPopMatix(); --> 還原矩陣
如此一來,茶壺就不會一直移動了
沒有留言:
張貼留言