#include <GL/glut.h>
float angle = 0 ;
void myCube()
{
glPushMatrix();
glScalef(1,0.3,0.3); ///調大小
glutSolidCube(0.5); ///正方塊
glPopMatrix();
}
void display()
{
glClear ( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glutSolidSphere(0.01,30,30); ///小球作為中心點
glPushMatrix();
glTranslatef(0.25,0.0,0);
glRotatef (angle,0,0,1) ;
glTranslatef(0.25,0,0);
myCube();
glPushMatrix();
glTranslatef(0.25,0.0,0);
glRotatef (angle,0,0,1) ;
glTranslatef(0.25,0,0);
myCube();
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
angle++ ;
}
int main(int argc,char*argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week06");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}
week06-3_TRT_robot4_arm_hand_right_left 把
glPushMatrix();
glTranslatef(0.25,0.0,0);
glRotatef (angle,0,0,1) ;
glTranslatef(0.25,0,0);
myCube();
glPushMatrix();
glTranslatef(0.25,0.0,0);
glRotatef (angle,0,0,1) ;
glTranslatef(0.25,0,0);
myCube();
glPopMatrix();
glPopMatrix();
複製一遍,把位置加上負號,做出左右手
#include <GL/glut.h>
float angle = 0 ;
void myCube() ///改函式
{
glPushMatrix();
glScalef(1,0.3,0.3); ///調大小
glutSolidCube(0.5); ///正方塊
glPopMatrix();
}
void display()
{
glClear ( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glutSolidSphere(0.01,30,30); ///小球作為中心點
glPushMatrix(); ///右邊的
glTranslatef(0.25,0.0,0);
glRotatef (angle,0,0,1) ;
glTranslatef(0.25,0,0);
myCube();
glPushMatrix();
glTranslatef(0.25,0.0,0);
glRotatef (angle,0,0,1) ;
glTranslatef(0.25,0,0);
myCube();
glPopMatrix();
glPopMatrix();
glPushMatrix(); ///左邊的
glTranslatef(-0.25,0.0,0);
glRotatef (angle,0,0,1) ;
glTranslatef(-0.25,0,0);
myCube();
glPushMatrix();
glTranslatef(-0.25,0.0,0);
glRotatef (angle,0,0,1) ;
glTranslatef(-0.25,0,0);
myCube();
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
angle++ ;
}
int main(int argc,char*argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week06");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}

week06-4_TRT_robot5_mouse_motion_angle
#include <GL/glut.h>
float angle = 0 ;
void myCube() ///改函式
{
glPushMatrix();
glScalef(1,0.3,0.3); ///調大小
glutSolidCube(0.5); ///正方塊
glPopMatrix();
}
void display()
{
glClear ( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glutSolidSphere(0.01,30,30); ///小球作為中心點
glPushMatrix(); ///右邊的
glTranslatef(0.25,0.0,0);
glRotatef (angle,0,0,1) ;
glTranslatef(0.25,0,0);
myCube();
glPushMatrix();
glTranslatef(0.25,0.0,0);
glRotatef (angle,0,0,1) ;
glTranslatef(0.25,0,0);
myCube();
glPopMatrix();
glPopMatrix();
glPushMatrix(); ///左邊的
glTranslatef(-0.25,0.0,0);
glRotatef (-angle,0,0,1) ;
glTranslatef(-0.25,0,0);
myCube();
glPushMatrix();
glTranslatef(-0.25,0.0,0);
glRotatef (-angle,0,0,1) ;
glTranslatef(-0.25,0,0);
myCube();
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
///angle++ ; ///註解掉
}
void motion(int x,int y) ///新加入的mouse motion
{
angle = x;
}
int main(int argc,char*argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week06");
glutMotionFunc(motion); ///新加入的mouse motion
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}
#include <GL/glut.h>
float angle = 0 ;
void myCube() ///改函式
{
glPushMatrix();
glScalef(1,0.3,0.3); ///調大小
glutSolidCube(0.5); ///正方塊
glPopMatrix();
}
void display()
{
glClear ( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glutSolidSphere(0.01,30,30); ///小球作為中心點
glPushMatrix(); ///右邊的
glTranslatef(0.25,0.0,0);
glRotatef (angle,0,0,1) ;
glTranslatef(0.25,0,0);
myCube();
glPushMatrix();
glTranslatef(0.25,0.0,0);
glRotatef (angle,0,0,1) ;
glTranslatef(0.25,0,0);
myCube();
glPopMatrix();
glPopMatrix();
glPushMatrix(); ///左邊的
glTranslatef(-0.25,0.0,0);
glRotatef (-angle,0,0,1) ;
glTranslatef(-0.25,0,0);
myCube();
glPushMatrix();
glTranslatef(-0.25,0.0,0);
glRotatef (-angle,0,0,1) ;
glTranslatef(-0.25,0,0);
myCube();
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
///angle++ ;
}
int oldX=0;
void mouse(int button,int state,int x,int y) ///mouse函式
{
oldX=x;
}
void motion(int x,int y)
{
angle +=(x-oldX); ///x-oldX 改變量
oldX =x;
}
int main(int argc,char*argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week06");
glutMotionFunc(motion); ///新加入的mouse motion
glutMouseFunc(mouse); ///新加入的mouse函式
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}
沒有留言:
張貼留言