#include<GL/glut.h>
float angle=0;///TODO:
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清空
glPushMatrix();
glRotatef(angle,0,0,1);///TODO:旋轉,對z軸轉
glutSolidCube(1);///TODO:畫個方塊
glPopMatrix();
glutSwapBuffers();
angle++;
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("08160093");
glutDisplayFunc(display);
glutIdleFunc(display);///TODO:閒閒有空時,就重畫畫面
glutMainLoop();
}首先先學會轉動,這個在後面可以當作身體
方塊會旋轉
#include<GL/glut.h>
float angle=0;///TODO:
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清空
glPushMatrix();
glRotatef(angle,0,0,1);///對中心轉動
glScalef(0.5,0.1,0.1);///細長的
glColor3f(0,0,1);藍色的
glutSolidCube(1);///TODO:畫個方塊
glPopMatrix();
glutSwapBuffers();
angle++;
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("08160093");
glutDisplayFunc(display);
glutIdleFunc(display);///TODO:閒閒有空時,就重畫畫面
glutMainLoop();
}
#include<GL/glut.h>
float angle=0;///TODO:
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清空
glPushMatrix();
glRotatef(angle,0,0,1);///TODO:旋轉,對z軸轉
glTranslated(0.25,0,0);///把關節移動到中心
glScalef(0.5,0.1,0.1);///細長的
glColor3f(0,0,1);
glutSolidCube(1);///TODO:畫個方塊
glPopMatrix();
glutSwapBuffers();
angle++;
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("08160093");
glutDisplayFunc(display);
glutIdleFunc(display);///TODO:閒閒有空時,就重畫畫面
glutMainLoop();
}
#include<GL/glut.h>
float angle=0;///TODO:
void hand()
{
glPushMatrix();
glScalef(0.5,0.1,0.1);///細長的
glColor3f(0,0,1);///藍色的
glutSolidCube(1);///方塊
glPopMatrix();
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清空
glColor3f(1,1,1);
glutSolidCube(1);///大身體
glPushMatrix();
glTranslatef(0.5,0.5,0);///(3)整個移動到右上角掛著
glRotatef(angle,0,0,1);///(2)對中心轉動
glTranslatef(0.25,0,0);///(1)把關節移動到中心
hand();///細長的藍色小手
glPopMatrix();
glutSwapBuffers();
angle++;
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("08160093");
glutDisplayFunc(display);
glutIdleFunc(display);///TODO:閒閒有空時,就重畫畫面
glutMainLoop();
}白色方塊當作身體,藍色方塊我們當作手臂放在右上角
#include<GL/glut.h>
float angle=0;///TODO:
void hand()
{
glPushMatrix();
glScalef(0.5,0.1,0.1);///細長的
glColor3f(0,0,1);///藍色的
glutSolidCube(1);///方塊
glPopMatrix();
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清空
glColor3f(1,1,1);glutSolidCube(0.5);///大身體
glPushMatrix();///右半邊
glTranslatef(0.25,0.25,0);///(3)整個移動到右上角掛著
glRotatef(angle,0,0,1);///(2)對中心轉動
glTranslatef(0.25,0,0);///(1)把關節移動到中心
hand();///細長的藍色小手
glPushMatrix();
glTranslatef(0.25,0,0);///(3)往右拉過去
glRotatef(angle,0,0,1);///(2)對中心轉動
glTranslatef(0.25,0,0);///(1)把關節移動到中心
hand();///下手臂
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
angle++;///TODO:
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("08160093");
glutDisplayFunc(display);
glutIdleFunc(display);///TODO:閒閒有空時,就重畫畫面
glutMainLoop();
}
#include<GL/glut.h>
float angle=0;///TODO:
void hand()
{
glPushMatrix();
glScalef(0.5,0.1,0.1);///細長的
glColor3f(0,0,1);///藍色的
glutSolidCube(1);///方塊
glPopMatrix();
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清空
glColor3f(1,1,1);glutSolidCube(0.5);///大身體
glPushMatrix();///右半邊
glTranslatef(0.25,0.25,0);///(3)整個移動到右上角掛著
glRotatef(angle,0,0,1);///(2)對中心轉動
glTranslatef(0.25,0,0);///(1)把關節移動到中心
hand();///細長的藍色小手
glPushMatrix();
glTranslatef(0.25,0,0);///(3)往右拉過去
glRotatef(angle,0,0,1);///(2)對中心轉動
glTranslatef(0.25,0,0);///(1)把關節移動到中心
hand();///下手臂
glPopMatrix();
glPopMatrix();
/////-----
glPushMatrix();///左半邊
glTranslatef(-0.25,0.25,0);///(3)整個移動到左上角掛著
glRotatef(-angle,0,0,1);///(2)對中心轉動
glTranslatef(-0.25,0,0);///(1)把關節移動到中心
hand();///細長的藍色小手
glPushMatrix();
glTranslatef(-0.25,0,0);///(3)往左拉過去
glRotatef(-angle,0,0,1);///(2)對中心轉動
glTranslatef(-0.25,0,0);///(1)把關節移動到中心
hand();///下手臂
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
angle++;///TODO:
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("08160093");
glutDisplayFunc(display);
glutIdleFunc(display);///TODO:閒閒有空時,就重畫畫面
glutMainLoop();
}
接著右邊的手做好了,我們改變一下座標位置和旋轉妯,把左手也做出來
沒有留言:
張貼留言