啵咕咕的筆記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-3程式
加上最後一行 glTranslatef(0.3,0.3,0);放最上面,掛上去
加上最後一行 glTranslatef(0.3,0.3,0);放最上面,掛上去
開新專案
貼上week10-4程式碼
把整套glPushMatrix();
glTranslatef(0.15,0,0);
glRotatef(angle++,0,0,1);
glTranslatef(0.15,0,0);
myArm();
glPopMatrix();
插myArm()後面
開新專案,貼上week10-5的程式碼
複製右半邊手臂程式碼,再貼上一次,把Translatef的x軸改成負的
開新專案,貼上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-7的程式碼
把display()裡面左邊手臂的angle改成-angle
開新專案,貼上week10-8的程式碼
在#include的地方,加上#include<windows.h>或#include<mmsystem.h>
在main()的第一行,加入PlaySound("C:/檔名.wav", NULL, SND_ASYNC);
音檔放到C目錄
沒有留言:
張貼留言