開貝殼專案
將咒語和捷進加入
#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();
}
手跟腳都能移動





沒有留言:
張貼留言