2021年3月29日 星期一

我出一百萬

 week06


#include<GL/glut.h>

int N=0,vx[3000],vy[3000];

float angle=0;

void display()

{

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //清空

    glPushMatrix(); //備份矩陣

        glRotatef(angle,0,0,1);//旋轉,對Z軸轉

        glScalef(0.5,0.1,0.1);//調成細長的

        glColor3f(0.3,0.3,1.0);//藍藍的

        glutSolidCube(1);//方塊

    glPopMatrix();//還原矩陣

    glutSwapBuffers();//交換兩倍的buffers

}

void motion(int x, int y)

{

    angle++;//只要mouse在motion時,就會增加角度

    display();//增加後,重畫畫面

}

void keyboard(unsigned char key, int x, int y)

{

}

int main(int argc, char **argv) 

{

    glutInit(&argc, argv); //Glut初始化

    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);//顯示模式

    glutCreateWindow("08160084 week06");//開窗 //mouse motion 再拖動他


    glutDisplayFunc(display); //等一下要顯示的函式

    glutKeyboardFunc(keyboard); //按按鍵他就會轉動

    glutMotionFunc(motion); //mouse motion在動喔!!!!!


    glutMainLoop(); 

}

=================================================================


#include<GL/glut.h>

float angle=0;

void display()

{

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//清空

    glPushMatrix();//備份矩陣

        glRotatef(angle++,0,0,1);//要轉動angle

        glColor3f(0.3,0.3,1.0);//藍藍的

        glutSolidCube(1); //方塊

    glPopMatrix();//還原矩陣

    glutSwapBuffers();//交換兩倍的buffers

}

int main(int argc, char **argv)

{

    glutInit(&argc, argv);//Glut初始化

    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);//顯示模式

    glutCreateWindow("08160084 week06");


    glutIdleFunc(display);///idle很閒的時候,就重畫面

    glutDisplayFunc(display);


    glutMainLoop();

}

#include<GL/glut.h>
float angle=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清空
    glPushMatrix();///備份矩陣
        ///glTranslatef(0,0,0);(3)把正確轉動的手臂,掛在肩上
        ///glRotatef(angle++,0,0,1);///(2)轉動
        glTranslatef(-0.25,0,0);///(1)將旋轉中心,放在正中心

        glScalef(0.5,0.1,0.1);///細細長長的
        glutSolidCube(1);///方塊
    glPopMatrix();///還原矩陣
    glutSwapBuffers();///交換兩倍的buffers
}
int main(int argc, char **argv)
{

    glutInit(&argc, argv);///Glut初始化
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);///顯示模式
    glutCreateWindow("08160084 week06");

    glutIdleFunc(display);///idle很閒的時候,就重畫面
    glutDisplayFunc(display);

    glutMainLoop();
}

#include<GL/glut.h>
float angle=0;
void hand()
{
    glPushMatrix();
        glScalef(0.5,0.1,0.1);///細細長長的
        glutSolidCube(1);///方塊
    glPopMatrix();
}
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清空
    glPushMatrix();///備份矩陣
        glTranslatef(-0.25,0,0);///(3)把正確轉動的手臂,掛在肩上
        glRotatef(angle++,0,0,1);///(2)轉動
        glTranslatef(-0.25,0,0);///(1)將旋轉中心,放在正中心
        hand();

    glPopMatrix();///還原矩陣
    hand();
    glutSwapBuffers();///交換兩倍的buffers
}
int main(int argc, char **argv)
{

    glutInit(&argc, argv);///Glut初始化
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);///顯示模式
    glutCreateWindow("08160084 week06");

    glutIdleFunc(display);///idle很閒的時候,就重畫面
    glutDisplayFunc(display);

    glutMainLoop();
}


#include<GL/glut.h>
float angle=0;
void hand()
{
    glPushMatrix();
        glScalef(0.5,0.1,0.1);///細細長長的
        glutSolidCube(1);///方塊
    glPopMatrix();
}
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清空
    glPushMatrix();///備份矩陣
        glTranslatef(-0.25,0,0);///(3)把正確轉動的手臂,掛在肩上
        glRotatef(angle,0,0,1);///(2)轉動
        glTranslatef(-0.25,0,0);///(1)將旋轉中心,放在正中心
        hand();

        glPushMatrix();///備份矩陣
            glTranslatef(-0.25,0,0);///(3)把正確轉動的手臂,掛在肩上
            glRotatef(angle,0,0,1);///(2)轉動
            glTranslatef(-0.25,0,0);///(1)將旋轉中心,放在正中心
            hand();
        glPopMatrix();
    glPopMatrix();///還原矩陣
    glutSwapBuffers();///交換兩倍的buffers
    angle++;
}
int main(int argc, char **argv)
{

    glutInit(&argc, argv);///Glut初始化
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);///顯示模式
    glutCreateWindow("08160084 week06");

    glutIdleFunc(display);///idle很閒的時候,就重畫面
    glutDisplayFunc(display);

    glutMainLoop();
}


#include<GL/glut.h>
float angle=0;
void hand()
{
    glPushMatrix();
        glScalef(0.5,0.1,0.1);///細細長長的
        glutSolidCube(1);///方塊
    glPopMatrix();
}
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清空
    glPushMatrix();///備份矩陣
        glTranslatef(-0.25,0,0);///(3)把正確轉動的手臂,掛在肩上
        glRotatef(angle,0,0,1);///(2)轉動
        glTranslatef(-0.25,0,0);///(1)將旋轉中心,放在正中心
        hand();

        glPushMatrix();///備份矩陣
            glTranslatef(-0.25,0,0);///(3)把正確轉動的手臂,掛在肩上
            glRotatef(angle,0,0,1);///(2)轉動
            glTranslatef(-0.25,0,0);///(1)將旋轉中心,放在正中心
            hand();
        glPopMatrix();
    glPopMatrix();///還原矩陣
*右手*
     glPushMatrix();///備份矩陣 
        glTranslatef(+0.25,0,0);///(3)把正確轉動的手臂,掛在肩上
        glRotatef(-angle,0,0,1);///(2)轉動
        glTranslatef(+0.25,0,0);///(1)將旋轉中心,放在正中心
        hand();

        glPushMatrix();///備份矩陣
            glTranslatef(+0.25,0,0);///(3)把正確轉動的手臂,掛在肩上
            glRotatef(-angle,0,0,1);///(2)轉動
            glTranslatef(+0.25,0,0);///(1)將旋轉中心,放在正中心
            hand();
        glPopMatrix();
    glPopMatrix();///還原矩陣
    glutSwapBuffers();///交換兩倍的buffers
    angle++;
}
int main(int argc, char **argv)
{

    glutInit(&argc, argv);///Glut初始化
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);///顯示模式
    glutCreateWindow("08160084 week06");

    glutIdleFunc(display);///idle很閒的時候,就重畫面
    glutDisplayFunc(display);

    glutMainLoop();
}

沒有留言:

張貼留言

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

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