2021年5月31日 星期一

怎麼那麼難...來讓茶壺進化

 茶壺準備要進化了!!!
老樣子一個茶壺登場

#include <stdio.h>
#include <GL/glut.h>
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );//清空
    glutSolidTeapot(0.3);//實心茶壺 大小0.3
    glutSwapBuffers();//交換兩倍的Buffers
}
int main(int argc, char**argv)
{
    glutInit(&argc,argv);//GLUT初始設定
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);//顯示模式
    glutCreateWindow("08160465 邁向15週");
    glutDisplayFunc(display);//display顯示函式
    glutMainLoop();//主要迴圈
}
茶壺變多了!還會動???


#include <stdio.h>
#include <GL/glut.h>
float angle=0, diff=2;
void timer(int t)
{
    glutTimerFunc( 30, timer, t+1 );//設定新timer
    angle += diff;
    if(angle>90) diff = -2;
    if(angle<0) diff = +2;
    glutPostRedisplay();//上週教的display();
}
void display()
{
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
    glPushMatrix();
        glutSolidTeapot( 0.3 );//身體
        glPushMatrix();
            glTranslatef(-0.3,0,0);
            glRotatef(angle, 0,0,1);
            glTranslatef(-0.3,0,0);
            glutSolidTeapot( 0.3 );//左手臂, 要用 T-R-T移位置
            glPushMatrix();
                glTranslatef(-0.3, 0,0);
                glRotatef(angle, 0,0,1);
                glTranslatef(-0.3, 0,0);
                glutSolidTeapot( 0.3 );//左手肘
            glPopMatrix();
        glPopMatrix();
        glPushMatrix();
            glutSolidTeapot( 0.3 );//右手臂
            glutSolidTeapot( 0.3 );//右手肘
        glPopMatrix();
    glPopMatrix();
    glutSwapBuffers();
}
int main( int argc, char** argv )
{
    glutInit( &argc, argv );
    glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH );
    glutCreateWindow( "08160465 Week15 茶壺變手臂!" );

    glutDisplayFunc( display );
    glutTimerFunc( 0, timer, 0);
    glutMainLoop();
}

茶壺旁邊長茶壺??喔喔是手臂~

左邊畫完?換右邊!!!!
#include <stdio.h>
#include <GL/glut.h>
float angle=0, diff=2;
void timer(int t)
{
    glutTimerFunc( 30, timer, t+1 );//設定新timer
    angle += diff;
    if(angle>90) diff = -2;
    if(angle<0) diff = +2;
    glutPostRedisplay();//上週教的display();
}
void display()
{
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
    glPushMatrix();
        glutSolidTeapot( 0.3 );//身體
        glPushMatrix();
            glTranslatef(-0.3,0,0);
            glRotatef(angle, 0,0,1);
            glTranslatef(-0.3,0,0);
            glutSolidTeapot( 0.3 );//左手臂,用 T-R-T移位置
            glPushMatrix();
                glTranslatef(-0.3, 0,0);
                glRotatef(angle, 0,0,1);
                glTranslatef(-0.3, 0,0);
                glutSolidTeapot( 0.3 );//左手肘
            glPopMatrix();
        glPopMatrix();
        glPushMatrix();
            glTranslatef(+0.3,0,0);
            glRotatef(-angle, 0,0,1);
            glTranslatef(+0.3,0,0);
            glutSolidTeapot( 0.3 );//右手臂
            glPushMatrix();
                glTranslatef(+0.3,0,0);
                glRotatef(-angle, 0,0,1);
                glTranslatef(+0.3,0,0);
                glutSolidTeapot( 0.3 );//右手肘
            glPopMatrix();
        glPopMatrix();
    glPopMatrix();
    glutSwapBuffers();
}
int main( int argc, char** argv )
{
    glutInit( &argc, argv );
    glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH );
    glutCreateWindow( "08160465 Week 茶壺變手臂!" );

    glutDisplayFunc( display );
    glutTimerFunc( 0, timer, 0);
    glutMainLoop();
}

沒有留言:

張貼留言

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

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