2019年3月15日 星期五

06160371 week4

1.先下載老師給的data,win32,glut32.dll
   http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/

2..將window.zip解壓縮到window資料夾,複製glut32.dll到window資料夾裡
   並打開Transformation.exe執行檔












3.3.先開啟freeglut windows網站然後下載Download freeglut 3.0.0 for MinGW 
   然後解壓縮然後打開lib資料夾,複製貼上libfreeglut.a,把複製的改名為libglut32.a









4.打開codeblack先建一個glut然後開啟執行










(然後把這些程式碼刪光光!😆)



5.以用滑鼠讓水壺移動















 
(藍色=解釋 紅色=新教 黃色=重點)
#include <GL/glut.h>
float x=0,y=0; ///重點在滑鼠
void display()
{
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );///清畫面
    glPushMatrix();    ///要把座標換算正確,(x-中間點)/最大值.0
        glTranslatef(x-150)/150.0,-(y-150)/150.0,0);///位移
        glutSolidTeapot(0.3);///實心茶壺
    glPopMatrix();///還原矩陣,保護好
    glutSwapBuffers();///交換buffer顯示
}///glut開頭,表示是GLUT的程式
void motion(int nowx, int nowy)
{
    x=nowx; y=nowy; ///更新x,y
    display();///再畫display(),畫面會更新,他就會跟著你動
}
int main(int argc, char**argv)
{
    glutInit(&argc, argv);      ///初始化GLUT功能Init是初始化
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH); ///開機有深度不會閃爍GLUT_DEPTH ->可以用出3D
    glutCreateWindow("我是蘇珺心的第一個程式"); ///顯示一個視窗
    glutDisplayFunc(display);///呼叫上面的display
    glutMotionFunc(motion);///執行上面的motion
    glutMainLoop();///迴圈
}

6.以用滑鼠讓水壺轉動
















(藍色=解釋 紅色=新教 黃色=重點)
#include <GL/glut.h>
float x=0,y=0; ///重點在滑鼠
void display()
{
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );///清畫面
    glPushMatrix();    ///要把座標換算正確,(x-中間點)/最大值.0
    /* glTranslatef(x-150)/150.0,-(y-150)/150.0,0);///位移*/ (把這行改掉!)
        glRotatef( 45,x,y,30);///旋轉  (加入這行)
        glutSolidTeapot(0.3);///實心茶壺
    glPopMatrix();///還原矩陣,保護好
    glutSwapBuffers();///交換buffer顯示
}///glut開頭,表示是GLUT的程式
void motion(int nowx, int nowy)
{
    x=nowx; y=nowy; ///更新x,y
    display();///再畫display(),畫面會更新,他就會跟著你動
}
int main(int argc, char**argv)
{
    glutInit(&argc, argv);      ///初始化GLUT功能Init是初始化
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH); ///開機有深度不會閃爍GLUT_DEPTH ->可以用出3D
    glutCreateWindow("我是蘇珺心的第一個程式"); ///顯示一個視窗
    glutDisplayFunc(display);///呼叫上面的display
    glutMotionFunc(motion);///執行上面的motion
    glutMainLoop();///迴圈
}

7.

沒有留言:

張貼留言