1.開啟上禮拜的程式
2.刪除glPushMatrix();之間的程式碼
3.加入程式碼
glRotatef(angle,0,0,1);
glScalef(0.5,0.1,0.1);
glColor3f(0.3,0.3,1.0);
glutSolidCube(1);
4.刪除motion,keyboard的程式碼
5.把keyboard中的程式碼複製到motion
1.將glScalef(0.5,0.1,0.1);跟 glColor3f(0.3,0.3,1.0);刪除
2.glRotatef(angle,0,0,1);的angle++
3.將motion,keyboard刪掉
float angle=0;
void hand()
{
glPushMatrix();
glScalef(0.5,0.1,0.1);
glutSolidCube(1);
glPopMatrix();
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清空
glPushMatrix();
glTranslatef(-0.25,0,0);
glRotatef(angle,0,0,1);
glTranslatef(-0.25,0,0);
hand();
glPushMatrix();
glTranslatef(-0.25,0,0);
glRotatef(angle,0,0,1);
glTranslatef(-0.25,0,0);
hand();
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
angle++;
}
int main(int argc, char ** argv)
{
glutInit( &argc, argv ); ///(1) GLUT初始設定
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);///(2)顯示模式
glutCreateWindow("08160812我是傑哥");///(3)開窗
glutIdleFunc(display);
glutDisplayFunc(display);///(4)等一下要顯示的函式
glutMainLoop();///(5)主要迴圈
}
1.現在要製作2調會動的手臂
2.將剛剛的手臂的程式碼複製,再把座標顛倒
3.程式碼如下
#include <GL/glut.h>
float angle=0;
void hand()
{
glPushMatrix();
glScalef(0.5,0.1,0.1);
glutSolidCube(1);
glPopMatrix();
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清空
glPushMatrix();
glTranslatef(-0.25,0,0);
glRotatef(angle,0,0,1);
glTranslatef(-0.25,0,0);
hand();
glPushMatrix();
glTranslatef(-0.25,0,0);
glRotatef(angle,0,0,1);
glTranslatef(-0.25,0,0);
hand();
glPopMatrix();
glPopMatrix();
glPushMatrix();
glTranslatef(+0.25,0,0);
glRotatef(-angle,0,0,1);
glTranslatef(+0.25,0,0);
hand();
glPushMatrix();
glTranslatef(+0.25,0,0);
glRotatef(-angle,0,0,1);
glTranslatef(+0.25,0,0);
hand();
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
angle++;
}
int main(int argc, char ** argv)
{
glutInit( &argc, argv ); ///(1) GLUT初始設定
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);///(2)顯示模式
glutCreateWindow("08160812我是傑哥");///(3)開窗
glutIdleFunc(display);
glutDisplayFunc(display);///(4)等一下要顯示的函式
glutMainLoop();///(5)主要迴圈
}
沒有留言:
張貼留言