2019年3月8日 星期五

week03

今天目標是練習Translate (移動)
今天一上課照著上一堂課的內容重做一次
到 http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/
下載        win32  data  socure


在下載一個叫  glut32.dll檔下載下來


把data.zip 跟windows.zip 解壓縮資料夾
把glut32.dll 移進資料夾



開啟shapes.exe就能執行



2.
一樣去載freeglut window檔解壓縮 
記得點進去lib裡把裡面libfreeglut.a複製改名freeglut32.a



再來去Codeblock 打開專案 GLUT project


選擇桌面的freeglut位置存檔
執行結果


3.

把專案裡的 main.cpp程式碼全部刪掉
輪到我們自己打程式碼

#include <GL/glut.h>
void display()
{
    glutSolidTeapot(0.3);///茶壺圖形(茶壺大小)
    glutSwapBuffers();
}
int main(int argc, char **argv)
{
    glutInit( &argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("Week03");///視窗名稱
    glutDisplayFunc(display);
    glutMainLoop();
}

這樣就能出現一個茶壺



在Display 加上glTranslated(X,Y,Z);

但這樣會有BUG 茶壺會變成很多個

所以要加上
glPushMatrix();///備份矩陣保護好
glPopMatrix();///還原矩陣保護好


程式碼
#include <GL/glut.h>
void display()
{
    glPushMatrix();
        glColor3f(1,0,0);
        glTranslated(0.3,0.3,0);
        glutSolidTeapot(0.3);///茶壺圖形(茶壺大小)
    glPopMatrix();
    glutSwapBuffers();
}
int main(int argc, char **argv)
{
    glutInit( &argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("Week04");///視窗名稱
    glutDisplayFunc(display);
    glutMainLoop();

}
執行結果


沒有留言:

張貼留言