1.機器人初模型
專案(左鍵) - Build Options 設定
(a)Search Directories 目錄
1.Compiler Add C:\freeglut\include
2.Linker Add C:\freeglut\lib
(b)Linker Settings
Add 1.winmm
2.freeglut
3.glu32
4.gdi32
5.opengl32
#include <GL/glut.h>
void display()
{
glPushMatrix();
glutSolidCube(0.7);
glTranslatef(0.6,0,0);
glutSolidCube(0.3);
glTranslatef(-1.2,0,0);
glutSolidCube(0.3);
glPopMatrix();
glutSwapBuffers();
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE);
glutCreateWindow("03161042");
glutDisplayFunc(display);
glutMainLoop();
}
2.機器人手臂旋轉
#include <GL/glut.h>
float rota=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glutSolidCube(0.5);
glTranslatef(0.15,0,0); //掛在哪
glRotatef(rota, 0,0,1); //轉動
glTranslatef(0.3,0,0); //轉動的中心
glutSolidCube(0.3);
glTranslatef(0.05,0,0); //掛在哪
glRotatef(rota, 0,0,1); //轉動
glTranslatef(0.3,0,0); //轉動的中心
glutSolidCube(0.3);
glPopMatrix();
glutSwapBuffers();
}
void motion(int x,int y)
{
rota=x;
glutPostRedisplay();
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE);
glutCreateWindow("03161042");
glutDisplayFunc(display);
glutMotionFunc(motion);
glutMainLoop();
}
3.繪出機器人使其跳舞
#include <GL/glut.h>
float rota=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glutSolidCube(0.5); //body
glPushMatrix();
glTranslatef(0,0.4,0);
glutSolidCube(0.2); //head
glPopMatrix();
glPushMatrix();
glTranslatef(0.225,0.2,0);
glRotatef(rota,0,0,1);
glTranslatef(0.1,0,0);
glutSolidCube(0.1); //上臂
glTranslatef(0.06,0,0);
glRotatef(rota,0,0,1);
glTranslatef(0.06,0,0);
glutSolidCube(0.1); //下臂
glTranslatef(0.06,0,0);
glRotatef(rota,0,0,1);
glTranslatef(0.06,0,0);
glutSolidCube(0.1); //右手
glPopMatrix();
glPushMatrix();
glTranslatef(-0.225,0.2,0);
glRotatef(-rota,0,0,1);
glTranslatef(-0.1,0,0);
glutSolidCube(0.1); //上臂
glTranslatef(-0.06,0,0);
glRotatef(-rota,0,0,1);
glTranslatef(-0.06,0,0);
glutSolidCube(0.1); //下臂
glTranslatef(-0.06,0,0);
glRotatef(-rota,0,0,1);
glTranslatef(-0.06,0,0);
glutSolidCube(0.1); //右手
glPopMatrix();
glPushMatrix();
glTranslatef(0.075,-0.3,0);
glRotatef(-rota,0,0,1);
glTranslatef(0.075,0,0);
glutSolidCube(0.1); //大腿
glTranslatef(0,-0.06,0);
glRotatef(-rota,0,0,1);
glTranslatef(0,-0.06,0);
glutSolidCube(0.1); //小腿
glTranslatef(0,-0.125,0);
glutSolidCube(0.1); //右腳
glTranslatef(0.1,0,0);
glutSolidCube(0.1);
glPopMatrix();
glPushMatrix();
glTranslatef(-0.15,-0.325,0);
glutSolidCube(0.1); //大腿
glTranslatef(0,-0.125,0);
glutSolidCube(0.1); //小腿
glTranslatef(0,-0.125,0);
glutSolidCube(0.1); //左腳
glTranslatef(-0.1,0,0);
glutSolidCube(0.1);
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
}
void motion(int x,int y)
{
rota=x;
glutPostRedisplay();
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE);
glutCreateWindow("03161042");
glutDisplayFunc(display);
glutMotionFunc(motion);
glutMainLoop();
}



沒有留言:
張貼留言