2020年4月21日 星期二

week08


移動機械手臂

#include <GL/glut.h>

void upper_arm(){
    glPushMatrix();
        glScalef(1,0.3,0.3);
        glutSolidCube(0.5);
    glPopMatrix();
}

float angle=0;

void display(){
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glPushMatrix();
        glTranslatef(0.5,0.5,0);
        glRotatef(angle,0,0,1);
        glTranslatef(0.25,0,0);
        upper_arm();
    glPopMatrix();
    angle++;
    glutSwapBuffers();
}

int main(int argc,char**argv){
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("week09");
    glutIdleFunc(display);
    glutDisplayFunc(display);
    glutMainLoop();
}



2條移動機械手臂



#include <GL/glut.h>
#include <stdio.h>

void upper_arm(){
    glPushMatrix();
        glScalef(1,0.3,0.3);
        glutSolidCube(0.5);
    glPopMatrix();
}

float angle=0;///todo


void display(){
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glPushMatrix();
        glTranslatef(0.2,0,0);///備份
        glRotatef(angle,0,0,1);
        glTranslatef(0.25,0,0);///把旋轉中心放到畫面正中心
        glColor3f(1,1,0);
        upper_arm();

        glPushMatrix();
            glTranslatef(0.25,0,0);///移動中心旋轉軸到右上角
            glRotatef(angle,0,0,1);
            glTranslatef(0.25,0,0);
            glColor3f(1,0.25,0);
            upper_arm();
        glPopMatrix();
    glPopMatrix();///還原


    glPushMatrix();
        glTranslatef(-0.2,0,0);
        glRotatef(-angle,0,0,1);
        glTranslatef(-0.25,0,0);
        glColor3f(1,1,0);
        upper_arm();

        glPushMatrix();
            glTranslatef(-0.25,0,0);
            glRotatef(-angle,0,0,1);
            glTranslatef(-0.25,0,0);
            glColor3f(1,0.25,0);
            upper_arm();
        glPopMatrix();
    glPopMatrix();

    angle++;
    glutSwapBuffers();
}

int main(int argc,char**argv){
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("07161036");
    glutIdleFunc(display);
    glutDisplayFunc(display);
    glutMainLoop();
}

沒有留言:

張貼留言