2020年6月23日 星期二

week18 期末整理


- 期末作業整理 -

 ☭ 

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;
}




記得旋轉的關節要移動到旋轉軸的中心點








十字 + 球
( 準心 )

void showAxis()
{
    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();
}



沒有留言:

張貼留言