week8上課時老師就預告了這次的作業
光聽就覺得相當的複雜
有Sphere圓形
Cone圓筒等....
回家作業練習
2.修正他的大小
3.讓他對著z軸旋轉
#include <Gl/glut.h>
void upper_arm()
{
glPushMatrix();///備份
glScalef(1,0.3,0.3);///x不變,y,z都變1/3
glutSolidCube(0.5);
glPopMatrix();///還原
}
float angle=0;///TODO
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glRotatef(angle,0,0,1);///對z軸旋轉
upper_arm();///呼叫函示
glPopMatrix();///還原
angle++;///TODP:
glutSwapBuffers();
}
int main(int argc,char **argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week09");
glutIdleFunc(display);///TODO:
glutDisplayFunc(display);
glutMainLoop();
}
4.多+glTranslated(0.25,0,0);調整x軸的位置 讓他中心點換位置 在Rotate下方
5.在+一個glTranslated(0.5,0.5,0);在Rotate上方
學習去如何讓目標物改變位置跟旋轉位置(利用TRT)
#include <Gl/glut.h>
void arm()
{
glPushMatrix();///備份
glScalef(1,0.3,0.3);///x不變,y,z都變1/3
glutSolidCube(0.5);
glPopMatrix();///還原
}
float angle=0;///TODO
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();///右手
glTranslated(0.2,0,0);///把下面手肘為中心,轉動的手,掛到右上角去
glRotatef(angle,0,0,1);///對z軸旋轉 再對症中心轉動,讓手肘像時針一樣,掛在中心軸
glTranslated(0.25,0,0);///把手肘(旋轉中心)放到畫面正中心
glColor3f(1,0,0); arm();///畫紅色的手(上手臂
glPushMatrix();
glTranslated(0.25,0,0);///把下面的手肘為中心,讓轉動的手,掛到右上角去
glRotatef(angle,0,0,1);///
glTranslated(0.25,0,0);///
glColor3f(1,1,0); arm();///畫黃色的手(下手臂
glPopMatrix();///還原
glPopMatrix();
glPushMatrix();///左手
glTranslated(-0.2,0,0);///
glRotatef(-angle,0,0,1);///
glTranslated(-0.25,0,0);///
glColor3f(1,0,0); arm();
glPushMatrix();
glTranslated(-0.25,0,0);///
glRotatef(-angle,0,0,1);///
glTranslated(-0.25,0,0);///
glColor3f(1,1,0); arm();
glPopMatrix();
glPopMatrix();
glPopMatrix();///還原
angle++;///TODP:
glutSwapBuffers();
}
int main(int argc,char **argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week09");
glutIdleFunc(display);///TODO:
glutDisplayFunc(display);
glutMainLoop();
}
int dx=1;
angle+=dx;
if(angle>60)dx=-1;
if(angle<0)dx=+1;
if(angle>60)dx=-1;
if(angle<0)dx=+1;





沒有留言:
張貼留言