2019年3月8日 星期五

yusyuan👀 -Week03

| Week 03 |
§移動 Translate§




●01 
先到http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/

下載[data]、[win32]、gult32.dll






●02
解壓縮到windows資料夾




●03
解完長這樣→






●04
data資料夾拉到windows資料夾裡面


 ●05

 將glut32.dll複製到windows資料夾

 ●06
全部複製完後長這樣→
windows資料夾裡會有data glut32.dl 

●07
點開Transformation.exe
可以調整 X,Y,Z 右鍵可以改圖形 改成花瓶.飛機....












-------------------------------------------------------------------------------------------------------------------

●01

week01  GLUT步驟相同     

一樣先開啟GLUT










●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();

}

●03

滑鼠游標跟著動

(程式有bug 左右相反 之後再修)


◎程式碼


#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();
}


沒有留言:

張貼留言