2021年3月29日 星期一

week06

 1.開啟上禮拜的程式

2.刪除glPushMatrix();之間的程式碼

3.加入程式碼 

        glRotatef(angle,0,0,1);

        glScalef(0.5,0.1,0.1);

        glColor3f(0.3,0.3,1.0);

        glutSolidCube(1);

4.刪除motion,keyboard的程式碼

5.把keyboard中的程式碼複製到motion



1.將glScalef(0.5,0.1,0.1);跟 glColor3f(0.3,0.3,1.0);刪除

2.glRotatef(angle,0,0,1);的angle++

3.將motion,keyboard刪掉

1.把正確轉動的手臂,掛在肩上
1.兩個手臂都會轉動
2.程式碼#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);
        glRotatef(angle,0,0,1);
        glTranslatef(-0.25,0,0);
        hand();
        glPushMatrix();
            glTranslatef(-0.25,0,0);
            glRotatef(angle,0,0,1);
            glTranslatef(-0.25,0,0);
            hand();
        glPopMatrix();
    glPopMatrix();
    glutSwapBuffers();
    angle++;
}
int main(int argc, char ** argv)
{
    glutInit( &argc, argv ); ///(1) GLUT初始設定
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);///(2)顯示模式
    glutCreateWindow("08160812我是傑哥");///(3)開窗

    glutIdleFunc(display);
    glutDisplayFunc(display);///(4)等一下要顯示的函式
    glutMainLoop();///(5)主要迴圈
}
1.現在要製作2調會動的手臂
2.將剛剛的手臂的程式碼複製,再把座標顛倒
3.程式碼如下
#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);
        glRotatef(angle,0,0,1);
        glTranslatef(-0.25,0,0);
        hand();
        glPushMatrix();
            glTranslatef(-0.25,0,0);
            glRotatef(angle,0,0,1);
            glTranslatef(-0.25,0,0);
            hand();
        glPopMatrix();
    glPopMatrix();

    glPushMatrix();
        glTranslatef(+0.25,0,0);
        glRotatef(-angle,0,0,1);
        glTranslatef(+0.25,0,0);
        hand();
        glPushMatrix();
            glTranslatef(+0.25,0,0);
            glRotatef(-angle,0,0,1);
            glTranslatef(+0.25,0,0);
            hand();
        glPopMatrix();
    glPopMatrix();
    glutSwapBuffers();
    angle++;
}
int main(int argc, char ** argv)
{
    glutInit( &argc, argv ); ///(1) GLUT初始設定
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);///(2)顯示模式
    glutCreateWindow("08160812我是傑哥");///(3)開窗

    glutIdleFunc(display);
    glutDisplayFunc(display);///(4)等一下要顯示的函式
    glutMainLoop();///(5)主要迴圈
}


1.







沒有留言:

張貼留言

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

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