一開始先把上周的程式碼複製過來
再加上
void motion(int x,int y)
{
angle++;
display();
}
讓他可以旋轉
這樣可以看到一個長方形在原地旋轉
#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);///(3)把正確轉動的手臂,掛在肩上
glRotatef(angle++,0,0,1);///(2)轉動
glTranslatef(-0.25,0,0);///(1)將旋轉中心,放在正中心
hand();
glPopMatrix();
hand();
glutSwapBuffers();
}
int main(int argc, char ** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);///(2)顯示模式
glutCreateWindow("08161035");///(3)開窗
glutIdleFunc(display);///TODO2:idle很閒的時候就重畫面
glutDisplayFunc(display);
glutMainLoop();
}
可以看到變成一個手臂在旋轉
這樣就變成兩隻手臂在轉
再把程式碼再多打一次,並把位置的正負號顛倒就可以把手臂增長了








沒有留言:
張貼留言