電腦圖學2019-05-09 week12
(1)主題:鍵盤(2)主題:聲音、音樂
(3)複習:階層T-R-T骨架
(4)作業:能操控的機器人
可以放出聲音
//#include <iostream>
#include <windows.h>
#include <mmsystem.h>
#include <stdio.h>
int main()
{
printf("在之前\n");
PlaySoundA("C:\\Users\\user\\Downloads\\dog1.wav",NULL, SND_SYNC);
printf("在中間\n");
PlaySoundA("C:\\Users\\user\\Downloads\\dog1.wav",NULL, SND_SYNC);
printf("在最後\n");
}
新增一個新的free glut >>將程式碼放到137行跟140行
也可以跑出dog1.wav的聲音
之後加入do.re.mi.fa.so 可以製作小鋼琴
if(key=='1') PlaySoundA("C:\\Users\\user\\Downloads\\do.wav",NULL,SND_ASYNC);
if(key=='2') PlaySoundA("C:\\Users\\user\\Downloads\\re.wav",NULL,SND_ASYNC);
if(key=='3') PlaySoundA("C:\\Users\\user\\Downloads\\mi.wav",NULL,SND_ASYNC);
if(key=='4') PlaySoundA("C:\\Users\\user\\Downloads\\fa.wav",NULL,SND_ASYNC);
if(key=='5') PlaySoundA("C:\\Users\\user\\Downloads\\so.wav",NULL,SND_ASYNC);
按12345可發出聲音
還有將dog1的聲音改掉加入錄音檔可以開頭撥放錄音檔
#include "CMP3_MCI.h"
CMP3_MCI myMP3;
#include <mmsystem.h>
int main(int argc, char *argv[])
{
PlaySoundA("C:\\Users\\user\\Downloads\\many.wav",NULL, SND_SYNC);
myMP3.Play();
複習上禮拜的TRT
複習11週TRT
#include <GL/glut.h>
float angle[20];///用陣列,來取代很多個變數
///float angle1=0, angle2, angle3, angle4;
int jointID=1;///1,2,3,4
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(255,255,255);///白色
glutSolidTeapot( 0.3 );///身體
glPushMatrix();///右邊的手臂
glTranslatef(0.2, 0,0 );///(3)往右移動, 掛在身體的右肩
glRotatef(angle[1], 0,0,1);///(2)旋轉
glTranslatef(0.28, 0,0);///(1)往右推,把茶壼的柄,放到中心,變 轉動軸
glColor3f(255,0,0);///紅色
glutSolidTeapot( 0.2 );///上手臂
glPushMatrix();///右下手臂
glTranslatef(0.2, 0,0 );///(3)往右移動, 掛在身體的右肘
glRotatef(angle[2], 0,0,1);///(2)旋轉
glTranslatef(0.28, 0,0);///(1)往右推,把茶壼的柄,放到中心,變 轉動軸
glColor3f(255,0,0);///紅色
glutSolidTeapot( 0.2 );///下手臂
glPopMatrix();
glPopMatrix();
glPushMatrix();///左邊的手臂
glTranslatef(-0.2, 0,0 );///(3)往左移動, 掛在身體的左肩
glRotatef(-angle[3], 0,0,1);///(2)旋轉
glTranslatef(-0.28, 0,0);///(1)往左推,把茶壼的柄,放到中心,變 轉動軸
glColor3f(255,0,0);///紅色
glutSolidTeapot( 0.2 );///上手臂
glPushMatrix();///左下手臂
glTranslatef(-0.2, 0,0 );///(3)往左移動, 掛在身體的左肘
glRotatef(-angle[4], 0,0,1);///(2)旋轉
glTranslatef(-0.28, 0,0);///(1)往左推,把茶壼的柄,放到中心,變 轉動軸
glColor3f(255,0,0);///紅色
glutSolidTeapot( 0.2 );///下手臂
glPopMatrix();
glPopMatrix();
glPushMatrix();///左邊的大腿
glTranslatef(-0.18, -0.1,0 );///(3)往左移動, 掛在身體的左肩
glRotatef(-angle[3], 0,0,1);///(2)旋轉
glTranslatef(0, -0.2,0);///(1)往左推,把茶壼的柄,放到中心,變 轉動軸
glColor3f(255,0,0);///紅色
glutSolidTeapot( 0.2 );///上手臂
glPushMatrix();///左下小腿
glTranslatef(0, -0.1,0 );///(3)往左移動, 掛在身體的左肘
glRotatef(-angle[4], 0,0,1);///(2)旋轉
glTranslatef(0, -0.2,0);///(1)往左推,把茶壼的柄,放到中心,變 轉動軸
glColor3f(255,0,0);///紅色
glutSolidTeapot( 0.2 );///下小腿
glPopMatrix();
glPopMatrix();
glPushMatrix();///右邊的大腿
glTranslatef(+0.18, -0.1,0 );///(3)往左移動, 掛在身體的左肩
glRotatef(-angle[3], 0,0,1);///(2)旋轉
glTranslatef(0, -0.2,0);///(1)往左推,把茶壼的柄,放到中心,變 轉動軸
glColor3f(255,0,0);///紅色
glutSolidTeapot( 0.2 );///上手臂
glPushMatrix();///左下小腿
glTranslatef(0, -0.1,0 );///(3)往左移動, 掛在身體的左肘
glRotatef(-angle[4], 0,0,1);///(2)旋轉
glTranslatef(0, -0.2,0);///(1)往左推,把茶壼的柄,放到中心,變 轉動軸
glColor3f(255,0,0);///紅色
glutSolidTeapot( 0.2 );///下小腿
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
///angle++;
}
int oldX, oldY;
void mouse(int button, int state, int x, int y)
{
oldX = x; oldY = y;
}
void motion(int x, int y)
{
angle[jointID] += x -oldX;
oldX = x;
///if(jointID==1) angle1 = x;
///if(jointID==2) angle2 = x;
///if(jointID==3) angle3 = x;
///if(jointID==4) angle4 = x;
display();
}
void keyboard(unsigned char key, int x, int y)
{///Now3!!!
/// jointID = key - '0';
if(key=='1') jointID=1;
if(key=='2') jointID=2;
if(key=='3') jointID=3;
if(key=='4') jointID=4;
}
int main(int argc, char**argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week11 TRT");
glutIdleFunc(display);
glutDisplayFunc(display);
glutMotionFunc(motion);
glutMouseFunc(mouse);
glutKeyboardFunc(keyboard);
glutMainLoop();
}
沒有留言:
張貼留言