glPushMatrix();
///glRotated(60,1,0,0);
glRotated(a,0,0,1);
glTranslated(0,1.2,-6);///原本是第一行換到最後一行
glutSolidCone(1,1,slices,stacks);
glPopMatrix();
2.
float angle=0;///旋轉角度
void motion(int x,int y)///mouse motion拖動時呼叫
{
angle=x;///直接把mouse座標變為轉動角度
glutPostRedisplay();///重畫
}
void display()///畫面display呼叫
{
glCear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);///先清畫面
glPushMatrix();///備份矩陣
glRotatef(angle,0,0,1);/// rotate/translate/scale都會把矩陣改變
glTranslatef(0.45,-0.08,0);///移動茶壺的柄到畫面中心
glutSolidTeapot(0.3);///把茶壺的柄放到畫面中心
glPopMatrix();///還原矩陣
glutSwapBuffers();
}
3.
{
glCear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();///備份矩陣
glutSolidTeapot(0.3);
glPushMatrix();///上手臂
glTranslatef(0.5,0.15,0);///把會旋轉的柄放到右上角
glRotatef(angle,0,0,1);///把整個對畫面中心做旋轉
glTranslatef(0.45,-0.08,0);///移動茶壺的柄到畫面中心
glutSolidTeapot(0.3);///把茶壺的柄放到畫面中心
glPushMatrix();///下手肘
glTranslatef(0.5,0.15,0);///把會旋轉的柄放到右上角
glRotatef(angle,0,0,1);///把整個對畫面中心做旋轉
glTranslatef(0.45,-0.08,0);///移動茶壺的柄到畫面中心
glutSolidTeapot(0.3);///把茶壺的柄放到畫面中心
glPopMatrix();///還原矩陣
glPopMatrix();///還原矩陣
glPushMatrix();///上手臂
glTranslatef(-0.5,0.15,0);///把會旋轉的柄放到左上角
glRotatef(angle,0,0,1);///把整個對畫面中心做旋轉____angle可加上負號
glTranslatef(-0.45,-0.08,0);///移動茶壺的柄到畫面中心
glutSolidTeapot(0.3);///把茶壺的柄放到畫面中心
glPushMatrix();///下手肘
glTranslatef(-0.5,0.15,0);///把會旋轉的柄放到左上角
glRotatef(angle,0,0,1);///把整個對畫面中心做旋轉____angle可加上負號
glTranslatef(-0.45,-0.08,0);///移動茶壺的柄到畫面中心
glutSolidTeapot(0.3);///把茶壺的柄放到畫面中心
glPopMatrix();///還原矩陣
glPopMatrix();///還原矩陣
glPopMatrix();///還原矩陣
glutSwapBuffers();
}
沒有留言:
張貼留言