2021年3月15日 星期一

我只是想活得像閃電般

 #include <GL/glut.h>


#include <stdio.h>





點擊視窗的顯示出滑鼠的座標

void display()


{


    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);


    glutSolidTeapot(0.3);


    glutSwapBuffers();


}


void mouse(int button,int state,int x,int y)///Mouse


{


    printf("button:%d state:%d x:%d y:%d\n",button,state,x,y);


}


int main(int argc,char ** argv)


{

    glutInit( &argc , argv);

    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);

glutCreateWindow("08160271林子源")

    glutDisplayFunc(display);

    glutMouseFunc(mouse);///mouse

    glutMainLoop();


}

加三行

#include <GL/glut.h>

#include <stdio.h> ///TODO

void display()

{

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glutSolidTeapot(0.3);

    glutSwapBuffers();

}

void mouse(int button,int state,int x,int y)

{

    if(state==GLUT_DOWN){printf("glVertex3f((%d-150)/150.0,-(%d-150)/150.0,0 s);\n",x,y);}

} ///TODO 印出來

int main(int argc,char **argv)

{

    glutInit(&argc,argv);

    glutInitDisplayMode(GLUT_DOUBLE |GLUT_DEPTH);

    glutCreateWindow("Week04 mouse");

    glutDisplayFunc(display);

    glutMouseFunc(mouse); ///TODO

    glutMainLoop();

}

茶壺移動



#include <GL/glut.h>

#include <stdio.h> ///TODO

float teapotX=0,teapotY=0;

void display()

{

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glPushMatrix();

        glTranslatef(teapotX,teapotY,0);

        glutSolidTeapot(0.3);

        glPopMatrix();

        glEnd();

        glutSwapBuffers();

}

void motion(int x,int y)

{

    teapotX=(x-150)/150.0;

    teapotY=-(y-150)/150.0;

    display();

} ///TODO 印出來

int main(int argc,char** argv)

{

    glutInit(&argc,argv);

    glutInitDisplayMode(GLUT_DOUBLE |GLUT_DEPTH);

    glutCreateWindow("Week04 mouse");

    glutDisplayFunc(display);

    ///glutMouseFunc(mouse); ///TODO

    glutMotionFunc( motion );

    glutMainLoop();

}




glTranslatef 分別是攝影機的xyz軸方向移動。

可以用安培右手定理來想像,glRotatef的二三四的數值分別是xyz軸,只要調高第一個數,模型就會沿著軸向逆時針旋轉,反則順時針。

glScalef是模型的xyz軸形變。

用github架設了一個網站



沒有留言:

張貼留言

Week18期末作業(橘貓的跳舞熊熊)

 期末作業(橘貓的跳舞熊熊) 影片: https://youtu.be/R89tptMaQZw 程式碼: #include <opencv/highgui.h> #include <opencv/cv.h> #include <GL/glut.h...