2020年3月24日 星期二

電腦圖學-week04

今天上課一開始,教了3D的旋轉,從x、y增加成了x、y、z。
旋轉X會變成這樣

旋轉Y會變成這樣

旋轉Z會變成這樣

之後我們先開一個GLUT的專案,我們改變了裡面的一些函式讓裡面的圖形嘿跟著滑鼠拖曳移動。
增加了glutMotionFunc(motion);後要記得把const double a = myAngle;他下面的圖形旋轉才會跟著滑鼠一起移動。
現在我們把圖片換成茶杯,而且優化了程式,讓茶杯轉起來比較順暢而且不會因為點到座標改被旋轉的位置。

茶杯旋轉程式碼
#include<GL/glut.h>
float my = 0;
void display()

{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glPushMatrix();

        glRotated(my,0,0,1);
        glutSolidTeapot( 0.3 );

    glPopMatrix();
    glutSwapBuffers();

}
int old=0;
void mou(int but,int st,int x,int y)
{
    if(st==GLUT_DOWN) old=x;
}
void mot(int x,int y)
{
    my+=(x-old);
    old=x;
    display();
}

int main(int argc, char**argv)

{

    glutInit(&argc, argv);

    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);

    glutCreateWindow("Week04");
    glutMotionFunc(mot);
    glutMouseFunc(mou);

    glutDisplayFunc(display);

    glutMainLoop();
}





沒有留言:

張貼留言