2020年4月21日 星期二

week08

先下載freeglut-MinGW-3.0.0-1.mp.zip,今天要來調整內部數值

 glTranslated(x,y,z);//位置
 glRotated(60,1,0,0);//位置傾斜
 glRotated(a,0,0,1);//旋轉動畫
+?????

用下面的程式可以做出實心物體
glutSolidSphere(1,slices,stacks); //圓球
glutSolidCone(1,1,slices,stacks); //椎型
glutSolidTorus(0.2,0.8,slices,stacks); //環狀
glutSolidCube(0.5);//方塊

用下面的程式可以做出空心物體
glutWireSphere(1,slices,stacks);
glutWireCone(1,1,slices,stacks);
glutWireTorus(0.2,0.8,slices,stacks); //前面兩個為內圈及外圈的厚度



#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();
        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();
}

#include <GL/glut.h>
void 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.2,0,0);
            glRotatef(angle,0,0,1);
            glTranslatef(0.25,0,0);
            glColor3f(1,0,0);
            arm();

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

            glTranslatef(-0.2,0,0); //位置為負
            glRotatef(-angle,0,0,1);
            glTranslatef(-0.25,0,0);
            glColor3f(1,0,0);
            arm();

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

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






沒有留言:

張貼留言