2024年4月25日 星期四

啵咕咕的筆記week10

 啵咕咕的筆記week10

#week10-1

開新專案,freeglut設定好,貼上上週最後的程式碼

void myBody()

{

    glPushMatrix();

        glColor3f(1,0,0);

        glutWireCube(0.6);

    glPopMatrix();

}

void myArm()

{

    glPushMatrix();

        glColor3f(0,1,0);

        glScalef(1,0.4,0.4);

        glutWireCube(0.3);

    glPopMatrix();

}

void display()

{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    myBody();

    myArm();

glutSwapBuffers();

}



#week10-2

開新專案

貼上week10-1的程式

加上float angle=0;

在main()加上 glutIdleFunc(display);

在display()哩,myArm()的前後加上glPushMatrix();,glPopMatrix();,glRotatef(angle++,0,0,1);


#week10-3

開新專案,貼上week10-2程式加上 
glTranslatef(0.15,0,0);

#week10-4
開新專案,貼上week10-3程式
加上最後一行 glTranslatef(0.3,0.3,0);放最上面,掛上去

#week10-5
開新專案
貼上week10-4程式碼
把整套glPushMatrix();
                glTranslatef(0.15,0,0);
                glRotatef(angle++,0,0,1);
                glTranslatef(0.15,0,0);
                myArm();
            glPopMatrix();
插myArm()後面
#week10-6
開新專案,貼上week10-5的程式碼
複製右半邊手臂程式碼,再貼上一次,把Translatef的x軸改成負的

week10-7 

開新專案,貼上week10-6的程式碼
angle+都改成angle(用mouse motion來操控)
在main() 加 glutMotionFunc(motion);
加一個 void motion(int x,int y)函式
void motion(int x,int y)
{
    angle=x;
    glutPostRedisplay();
}
#week10-8
開新專案,貼上week10-7的程式碼
把display()裡面左邊手臂的angle改成-angle


#week10-9 放音樂
開新專案,貼上week10-8的程式碼
在#include的地方,加上#include<windows.h>或#include<mmsystem.h>
在main()的第一行,加入PlaySound("C:/檔名.wav", NULL, SND_ASYNC);
音檔放到C目錄

沒有留言:

張貼留言