2019年3月14日 星期四

Renfu--week4_06160034

電腦圖學2019-03-14

(1)主題:移動
(2)示範:glTranslatef(x,y,z)
首先我們要先到網站小葉的網站去下載三個東西
[data][win32][glut32.dll]










把data和win32解壓縮放到資料夾
之後開啟Transformation.exe














glTranslatef   >>>(控制X,Y,Z方位 )
glRotatef  >>>(控制車的角度 )
glScalef   >>>(控制車子的長扁寬 )


對程式按右鍵可以更改物品哦!















之後要去網站下載Download freeglut 3.0.0 for MinGW














打開codeblocks就可以完成












之後要在main.cpp刪除舊程式碼打出新程式碼。
#include <GL/glut.h>
void display()
{
    glPushMatrix();
    glTranslatef(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();
    }
可以得到大茶壺














之後要改成可以用滑鼠拖曳茶壺,所以更改程式碼
#include <GL/glut.h>
float x=0, y=0;///滑鼠的拖曳
void display()
{
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
    glTranslatef((x-150)/150.0,-(y-150)/150.0,0);
    glutSolidTeapot(0.3);
    glPopMatrix();///不會有舊的殘影///還原矩陣
    glutSwapBuffers();
}
void motion(int nowX, int nowY)///滑鼠拖曳
{
    x=nowX; y=nowY;
    display();///滑鼠更新
}
int main(int argc, char**argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE |GLUT_DEPTH);
    glutCreateWindow("week04renrenfu");
    glutDisplayFunc(display);
    glutMotionFunc(motion);
    glutMainLoop();
    }


























成功做出可以滑鼠拖曳的茶壺!!!

沒有留言:

張貼留言