- 期末作業整理 -
☭
void special (int key,int x,int y) //函式的宣告
void special(int key, int x, int y) //函式的定義,執行
{
if(key==GLUT_KEY_UP) nowID--;
if(key==GLUT_KEY_DOWN) nowID++;
if(nowID<0) nowID=0;
if(nowID>29) nowID=29;
}
記得旋轉的關節要移動到旋轉軸的中心點
十字 + 球
( 準心 )
{
glutSolidSphere(0.02, 10,10);
glColor3f(1,0,0);
glBegin(GL_LINES);
glVertex3f(0,0,0); glVertex3f( 0.5, 0,0);
glVertex3f(0,0,0); glVertex3f(-0.5, 0,0);
glVertex3f(0,0,0); glVertex3f(0, 0.5, 0);
glVertex3f(0,0,0); glVertex3f(0,-0.5, 0);
glVertex3f(0,0,0); glVertex3f(0,0, 0.5);
glVertex3f(0,0,0); glVertex3f(0,0,-0.5);
glEnd();
glColor3f(1,1,1);
}
小黑窗
( 顯示角度 )
void motion(int x, int y)
{
if(mode==1){///translate
posX[nowID]+=(x-oldX)/300.0;
posY[nowID]-=(y-oldY)/300.0;
printf("glTranslatef(%.2f, %.2f, %.2f);\n", posX[nowID], posY[nowID], 0);
}else if(mode==2){
angleX[nowID]+= x-oldX;
angleY[nowID]+= y-oldY;
printf("angleX:%.0f, angleY:%.0f\n", angleX[nowID], angleY[nowID]);
}
oldX=x; oldY=y;
glutPostRedisplay();
}
沒有留言:
張貼留言