
1.解壓縮freeglut
2.開啟codeblock的貝殼專案






將freeglut.dll複製到codeblock的資料夾


現在試試看公轉跟自轉

機器人手臂
#include <GL/glut.h>
float rot1=0;///起始值設定
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清理背景
glPushMatrix();
glutWireCube(0.2);///body
glPushMatrix();
glTranslatef(0, 0.15, 0);
glutWireCube(0.1);///head
glPopMatrix();
glPushMatrix();///上臂,下臂,手掌都要分開做調整
glTranslatef(0.10, 0.05, 0);
glRotatef(rot1, 0,0,1);
glTranslatef(0.05, 0, 0);
glutWireCube(0.1);///rigt upper arm
glTranslatef(0.05, 0, 0);
glRotatef(rot1, 0,0,1);
glTranslatef(0.05, 0, 0);
glutWireCube(0.1);///rigt lower arm
glTranslatef(0.05, 0, 0);///4.移到需要的座標位子
glRotatef(rot1, 0,0,1);///3.旋轉
glTranslatef(0.05, 0, 0);///2.改變他的旋轉中心點
glutWireCube(0.1);///1.先畫手掌
glPopMatrix();
glPushMatrix();
glTranslatef(-0.10, 0.05, 0);
glRotatef(-rot1, 0,0,1);
glTranslatef(-0.05, 0, 0);
glutWireCube(0.1);///left upper arm
glTranslatef(-0.05, 0, 0);
glRotatef(-rot1, 0,0,1);
glTranslatef(-0.05, 0, 0);
glutWireCube(0.1);///left lower arm
glTranslatef(-0.05, 0, 0);
glRotatef(-rot1, 0,0,1);
glTranslatef(-0.05, 0, 0);
glutWireCube(0.1);///hand
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();
}

沒有留言:
張貼留言