2016年5月17日 星期二

Week 13 蔡鼎濬

開貝殼專案
將咒語和捷進加入
#include <GL/glut.h>
void display()
{

        glutWireCube(0.3);
        glutSwapBuffers();

}
int main(int argc, char**argv)
{

        glutInit(&argc,argv);
        glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
        glutCreateWindow("Robot");
        glutDisplayFunc(display);
        glutMainLoop();
}
#include <GL/glut.h>
float rot1=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
//清除旋轉所造成的背影殘留
    glPushMatrix();畫圖的開始

        glutSolidTeapot(0.2);//茶壺1
        glRotatef(rot1, 0,0,1);//公轉
        glTranslatef(0.6,0,0);//移動0.6個單位
        glRotatef(rot1*5,0,0,1);//自轉
        glutSolidTeapot(0.2);//茶壺2
        glPopMatrix();//畫圖的結束
        glutSwapBuffers();

}
void motion(int x,int y)滑鼠移動函式
{
    rot1=x;
    glutPostRedisplay();
}
int main(int argc, char**argv)
{

        glutInit(&argc,argv);
        glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
        glutCreateWindow("Robot");
        glutDisplayFunc(display);//執行display函式
        glutMotionFunc(motion);//執行motion函式
        glutMainLoop();
}
2個茶壺的公轉和自轉
#include <GL/glut.h>
float rot1=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
        glutWireCube(0.2);

      glPushMatrix();
        glTranslatef(0,0.15,0);
        glutWireCube(0.1);
        glPopMatrix();

        glPushMatrix();
        glTranslatef(0.15,0,0);
        glutWireCube(0.1);
        glTranslatef(0.1,0,0);
        glutWireCube(0.1);
        glTranslatef(0.1,0,0);
        glutWireCube(0.1);
        glPopMatrix();

        glPushMatrix();
        glTranslatef(-0.15,0,0);
        glutWireCube(0.1);
        glTranslatef(-0.1,0,0);
        glutWireCube(0.1);
        glTranslatef(-0.1,0,0);
        glutWireCube(0.1);
        glPopMatrix();

        glutSwapBuffers();

}
void motion(int x,int y)
{
    rot1=x;
    glutPostRedisplay();
}
int main(int argc, char**argv)
{

        glutInit(&argc,argv);
        glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
        glutCreateWindow("Robot");
        glutDisplayFunc(display);
        glutMotionFunc(motion);
        glutMainLoop();
}
做出機器人
#include <GL/glut.h>
float rot1=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
        glutWireCube(0.2);

      glPushMatrix();
        glTranslatef(0,0.15,0);
        glutWireCube(0.1);
        glPopMatrix();

        glPushMatrix();///右手臂
        ///glTranslatef(0.15,0,0);///讓2個相加為0.15
        glTranslatef(0.10,0,0);///向X軸右邊移動0.10個單位
        glRotatef(rot1, 0,0,1);///向逆時針旋轉
        glTranslatef(0.05,0,0);///向X軸右邊移動0.05個單位
        glutWireCube(0.1);
        ///glTranslatef(0.1,0,0);
        glTranslatef(0.05,0,0);
        glRotatef(rot1, 0,0,1);
        glTranslatef(0.05,0,0);
        glutWireCube(0.1);
        ///glTranslatef(0.1,0,0);
        glTranslatef(0.05,0,0);
        glRotatef(rot1, 0,0,1);
        glTranslatef(0.05,0,0);
        glutWireCube(0.1);
        glPopMatrix();

        glPushMatrix();///左手臂
        ///glTranslatef(-0.15,0,0);
        glTranslatef(-0.10,0,0);///向X軸左邊移動0.10個單位
        glRotatef(rot1, 0,0,-1);///向順時針旋轉
        glTranslatef(-0.05,0,0);///向X軸左邊移動0.05個單位
        glutWireCube(0.1);
        ///glTranslatef(-0.1,0,0);
        glTranslatef(-0.05,0,0);
        glRotatef(rot1, 0,0,-1);
        glTranslatef(-0.05,0,0);
        glutWireCube(0.1);
        ///glTranslatef(-0.1,0,0);
        glTranslatef(-0.05,0,0);
        glRotatef(rot1, 0,0,-1);
        glTranslatef(-0.05,0,0);
        glutWireCube(0.1);
        glPopMatrix();

        glPushMatrix();
        ///glTranslatef(0,-0.15,0);
        glTranslatef(0.05,-0.10,0);
        glRotatef(rot1, 0,0,1);
        glTranslatef(0,-0.05,0);
        glutWireCube(0.1);
        ///glTranslatef(-0.1,0,0);
        glTranslatef(0,-0.10,0);
        glRotatef(rot1, 0,0,1);
        glTranslatef(0,0,0);
        glutWireCube(0.1);
        ///glTranslatef(-0.1,0,0);
        glTranslatef(0,-0.10,0);
        glRotatef(rot1, 0,0,1);
        glTranslatef(0,0,0);
        glutWireCube(0.1);
        glPopMatrix();

        glPushMatrix();
        ///glTranslatef(0,-0.15,0);
        glTranslatef(-0.05,-0.10,0);
        glRotatef(rot1, 0,0,-1);
        glTranslatef(0,-0.05,0);
        glutWireCube(0.1);
        ///glTranslatef(-0.1,0,0);
        glTranslatef(0,-0.10,0);
        glRotatef(rot1, 0,0,-1);
        glTranslatef(0,0,0);
        glutWireCube(0.1);
        ///glTranslatef(-0.1,0,0);
        glTranslatef(0,-0.10,0);
        glRotatef(rot1, 0,0,-1);
        glTranslatef(0,0,0);
        glutWireCube(0.1);
        glPopMatrix();

        glutSwapBuffers();

}
void motion(int x,int y)
{
    rot1=x;
    glutPostRedisplay();
}
int main(int argc, char**argv)
{

        glutInit(&argc,argv);
        glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
        glutCreateWindow("Robot");
        glutDisplayFunc(display);
        glutMotionFunc(motion);
        glutMainLoop();
}
手跟腳都能移動



沒有留言:

張貼留言