2019年5月9日 星期四

RenFu--06160034--week12

電腦圖學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();
}

沒有留言:

張貼留言