1.先開貝殼專案
2.設定密碼



3.打程式碼

#include <GL/glut.h>
void display()
{
glPushMatrix();
glutSolidTeapot(0.3);
glTranslatef(0.5,0,0);
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("Robot");
glutDisplayFunc(display);
glutMainLoop();
}
Hw01:
修改程式碼,讓茶壺可以旋轉

#include <GL/glut.h>
float rot1=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glutSolidTeapot(0.3);
glRotatef(rot1,0,0,1);///公轉
glTranslatef(0.7,0,0);
glRotatef(rot1*5,0,0,1);///自轉
glutSolidTeapot(0.3);
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();
}
Hw 03:
改變旋轉方向
改變旋轉方向
#include <GL/glut.h>
float rot1=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glutSolidTeapot(0.2);
glTranslatef(0.33,0.05,0);///旋轉中心點
glRotatef(rot1,0,0,1);///旋轉
glTranslatef(0.25,0,0);///座標
glutSolidTeapot(0.2);
glTranslatef(0.33,0.05,0);
glRotatef(rot1,0,0,1);
glTranslatef(0.25,0,0);
glutSolidTeapot(0.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);
glutMotionFunc(motion);
glutMainLoop();
}
///glutWireCube(0.3);
Hw 04:
畫出一個簡易機器人

#include <GL/glut.h>
float rot1=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glutWireCube(0.3);
glPushMatrix();
glTranslatef(0.05,0.02,0);///旋轉中心點
glRotatef(rot1,0,1,0);///旋轉
glTranslatef(-0.05,0.25,0);///座標
glutWireCube(0.2);
glPopMatrix();
glPushMatrix();
glTranslatef(0.05,0.05,0);///旋轉中心點
glRotatef(rot1,0,0,1);///旋轉
glTranslatef(0.2,0.05,0);///座標
glutWireCube(0.1);
glTranslatef(0.1,0.05,0);
glRotatef(rot1,0,0,1);
glTranslatef(0.05,-0.05,0);
glutWireCube(0.1);
glPopMatrix();
glPushMatrix();
glTranslatef(-0.05,0.05,0);
glRotatef(-rot1,0,0,1);
glTranslatef(-0.2,0.05,0);
glutWireCube(0.1);
glTranslatef(-0.1,0.05,0);
glRotatef(-rot1,0,0,1);
glTranslatef(-0.05,-0.05,0);
glutWireCube(0.1);
glPopMatrix();
glPushMatrix();
glTranslatef(-0.001,-0.005,0);
glRotatef(-rot1,0,0,1);
glTranslatef(-0.05,-0.25,0);
glutWireCube(0.1);
glTranslatef(-0.001,-0.005,0);
glRotatef(-rot1,0,0,1);
glTranslatef(0,-0.1,0);
glutWireCube(0.1);
glTranslatef(-0.001,-0.005,0);
glRotatef(-rot1,0,0,1);
glTranslatef(0,-0.1,0);
glutWireCube(0.1);
glTranslatef(-0.001,-0.005,0);
glRotatef(-rot1,0,0,1);
glTranslatef(0,-0.1,0);
glutWireCube(0.12);
glPopMatrix();
glPushMatrix();
glTranslatef(0.001,-0.005,0);
glRotatef(rot1,0,0,1);
glTranslatef(0.05,-0.25,0);
glutWireCube(0.1);
glTranslatef(0.001,-0.005,0);
glRotatef(rot1,0,0,1);
glTranslatef(0,-0.1,0);
glutWireCube(0.1);
glTranslatef(0.001,-0.005,0);
glRotatef(rot1,0,0,1);
glTranslatef(0,-0.1,0);
glutWireCube(0.1);
glTranslatef(0.001,-0.005,0);
glRotatef(rot1,0,0,1);
glTranslatef(0,-0.1,0);
glutWireCube(0.12);
glPopMatrix();
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();
}

沒有留言:
張貼留言