2017年3月20日 星期一

week 04 上課筆記 黃雪婷

(先去小葉老師的網站上下載data,win32,glut32.dll三個檔案,獲得data,windows兩個壓縮檔和glut32.dll.把windows壓縮包解壓縮,再把data解壓縮後的文件夾拖到windows文件夾中.最後把glut32.dll拖到windows文件夾中以確保transformation.exe的成功運行.)

(撰寫今天的程式碼.先建立glut專案,第一步寫上頭 #include<GL/glut.h>.然後撰寫main函式.凡是包含glut的函式,後面的參數也包含glut.然後要添加glutDisplayFunc(display),這樣寫出來的程式才能夠顯示出來.那兩行注釋掉的程式代表滑鼠的點擊以及滑鼠的移動兩個功能.最後一定要加上glutMainLoop()才能結束)


(然後加上void display()函式,來畫茶壺以及規定茶壺的大小.)


(然後就可以加入motion函式,來實現滑鼠可以拖著茶壺移動)


(在void display中加入glScalef(mouseX, mouseY,0);可以不僅用滑鼠移動茶壺,還可以把茶壺倒轉過來以及改變茶壺的大小)

程式碼:


#include <GL/glut.h>
float mouseX=0, mouseY=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
        glScalef(mouseX, mouseY, 0);
        //glTranslatef(mouseX, mouseY, 0);
        glutSolidTeapot(0.3);
        glPopMatrix();
        glutSwapBuffers();
}

void motion(int x,int y)
{
    mouseX = (x-150)/150.0;
    mouseY = -(y-150)/150.0;
    glutPostRedisplay();


}


int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("04162416 Translate Rotate Scale");
    glutDisplayFunc(display);
    //glutMouseFunc(mouse);
    glutMotionFunc(motion);
    glutMainLoop();
}



沒有留言:

張貼留言