20190530
(1)主題:攝影機、運鏡
(2)投影矩陣
(3)位置移動和轉動
(4)背景貼圖
(5)期末作品
2019電腦圖學 Computer Graphics 授課教師: 葉正聖 銘傳大學資訊傳播工程系 每週主題: 程式環境、點線面顏色、移動/旋轉/縮放與矩陣(Matrix)、階層性關節轉動(T-R-T)、做出機器人、打光、貼圖、glu/glut函式、鍵盤、滑鼠、計時器(timer)、讀入3D模型、粒子系統、聲音、特效、投影矩陣、攝影機與運鏡、機器人2.0、期末作品
2019年5月30日 星期四
2019年5月23日 星期四
嗶啵啵嗶啵2019/0509_W12
--------第12週上課-------
(1)主題:鍵盤
(2)主題:聲音、音樂
(3)複習:階層T-R-T骨架
(4)作業:能操控的機器人
🙈聲音:
下載1個喜歡的wav的音檔
2.到CodeBlocks開啟
console application 的專案
3.修改程式碼,讓他跑出聲音
#include <windows.h>///因為一些基礎Windows型別
#include <mmsystem.h>///Multimedia System裡面有聲音的函式
int main(){
PlaySoundA("C:\\Users\\user\\Downloads\\oceano.wav",NULL, SND_SYNC);
}
會發現一直說有錯誤诶黑>_^
4.到左邊week12按右鍵選擇Build options
5.完成😉
🙊鍵盤
1.
2019年5月16日 星期四
六到布行的部落 9
20190509week12
(1)主題:鍵盤
if(key=='1') PlaySoundA("C:\\Users\\user\\Desktop\\music\\do.wav",NULL,SND_ASYNC);
if(key=='2') PlaySoundA("C:\\Users\\user\\Desktop\\music\\re.wav",NULL,SND_ASYNC);
if(key=='3') PlaySoundA("C:\\Users\\user\\Desktop\\music\\mi.wav",NULL,SND_ASYNC);
if(key=='4') PlaySoundA("C:\\Users\\user\\Desktop\\music\\fa.wav",NULL,SND_ASYNC);
if(key=='5') PlaySoundA("C:\\Users\\user\\Desktop\\music\\so.wav",NULL,SND_ASYNC);
(藉由鍵盤輸出導致聲音出現)
行142:#include <mmsystem.h> (輸入函式)
1.下載好想要使用的音樂檔(wav)
2.打開codeblcoks並打入以下程式碼:
#include <windows.h>
#include <mmsystem.h>
int main()
{
PlaySoundA("C:\\Users\\user\\Downloads\\m4a1-1.wav",NULL,SND_SYNC);
}
(3)複習:T-R-T骨架
(4)作業:能動的機器人
(1)主題:鍵盤
if(key=='1') PlaySoundA("C:\\Users\\user\\Desktop\\music\\do.wav",NULL,SND_ASYNC);
if(key=='2') PlaySoundA("C:\\Users\\user\\Desktop\\music\\re.wav",NULL,SND_ASYNC);
if(key=='3') PlaySoundA("C:\\Users\\user\\Desktop\\music\\mi.wav",NULL,SND_ASYNC);
if(key=='4') PlaySoundA("C:\\Users\\user\\Desktop\\music\\fa.wav",NULL,SND_ASYNC);
if(key=='5') PlaySoundA("C:\\Users\\user\\Desktop\\music\\so.wav",NULL,SND_ASYNC);
(藉由鍵盤輸出導致聲音出現)
行142:#include <mmsystem.h> (輸入函式)
行146:PlaySoundA("C:\\Users\\user\\Downloads\\m4a1-1.wav",NULL,SND_SYNC);
(開場播放檔案的聲音)
(2)主題:聲音、音樂WAV、MP31.下載好想要使用的音樂檔(wav)
2.打開codeblcoks並打入以下程式碼:
#include <windows.h>
#include <mmsystem.h>
int main()
{
PlaySoundA("C:\\Users\\user\\Downloads\\m4a1-1.wav",NULL,SND_SYNC);
}
3.按下執行即可撥放音樂
(3)複習:T-R-T骨架
(4)作業:能動的機器人
2019年5月9日 星期四
uh-oh~可恩的上課筆記 Week12
鍵盤&音樂
打開codeblocks
下載wav聲音檔


基礎windows型別
完成後先播音樂再顯示圖↓
完成後先播音樂再顯示圖按12345會出現聲音↓
不能關掉圖 !!不然按12345會跑不出來
比較高級的檔 mp3.wma
#include "CMP3_MCI.h" 只需打一次
Week12_Summer
今日目標:
1、主題:鍵盤
2、主題:聲音、音樂
3、複習:階層T-R-T骨架
4、作業:能操控的機器人
1、主題:鍵盤
2、主題:聲音、音樂
3、複習:階層T-R-T骨架
4、作業:能操控的機器人
下載"win32"、"data"、"glut32.dll" 三個檔案並解壓縮放入對應資料夾中
下載MinGW的 "Download freeglut 3.0.0 for MinGW"
03 至 CodeBlock 開一個新的專案 Console Application
04 能播放音樂的程式,記得要在專案按右鍵 \ Bulid options \ Linker settings 中
Add Linker library 加入 winmm 即可執行程式
05 試試看把 PlauSound 函式 放入 GLUT 專案裡面
先 run 出音樂才會 run 出小黑窗
06 在全部撥放完之後,可以手動按鍵盤'1'、'2'、'3'、'4'、'5'
發出'do'、're'、'mi'、'fa'、'so'的聲音
07 最後做出不用WAV檔也可以順利撥出音樂的程式
程式碼:
/*
* GLUT Shapes Demo
*
* Written by Nigel Stewart November 2003
*
* This program is test harness for the sphere, cone
* and torus shapes in GLUT.
*
* Spinning wireframe and smooth shaded shapes are
* displayed until the ESC or q key is pressed. The
* number of geometry stacks and slices can be adjusted
* using the + and - keys.
*/
#ifdef _APPLE_
#include <GLUT/glut.h>
#else
#include <GL/glut.h>
#endif
#include <stdlib.h>
static int slices = 16;
static int stacks = 16;
/* GLUT callback Handlers */
static void resize(int width, int height)
{
const float ar = (float) width / (float) height;
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(-ar, ar, -1.0, 1.0, 2.0, 100.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity() ;
}
static void display(void)
{
const double t = glutGet(GLUT_ELAPSED_TIME) / 1000.0;
const double a = t*90.0;
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3d(1,0,0);
glPushMatrix();
glTranslated(-2.4,1.2,-6);
glRotated(60,1,0,0);
glRotated(a,0,0,1);
glutSolidSphere(1,slices,stacks);
glPopMatrix();
glPushMatrix();
glTranslated(0,1.2,-6);
glRotated(60,1,0,0);
glRotated(a,0,0,1);
glutSolidCone(1,1,slices,stacks);
glPopMatrix();
glPushMatrix();
glTranslated(2.4,1.2,-6);
glRotated(60,1,0,0);
glRotated(a,0,0,1);
glutSolidTorus(0.2,0.8,slices,stacks);
glPopMatrix();
glPushMatrix();
glTranslated(-2.4,-1.2,-6);
glRotated(60,1,0,0);
glRotated(a,0,0,1);
glutWireSphere(1,slices,stacks);
glPopMatrix();
glPushMatrix();
glTranslated(0,-1.2,-6);
glRotated(60,1,0,0);
glRotated(a,0,0,1);
glutWireCone(1,1,slices,stacks);
glPopMatrix();
glPushMatrix();
glTranslated(2.4,-1.2,-6);
glRotated(60,1,0,0);
glRotated(a,0,0,1);
glutWireTorus(0.2,0.8,slices,stacks);
glPopMatrix();
glutSwapBuffers();
}
#include <mmsystem.h>
static void key(unsigned char key, int x, int y)
{
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);
switch (key)
{
case 27 :
case 'q':
exit(0);
break;
case '+':
slices++;
stacks++;
break;
case '-':
if (slices>3 && stacks>3)
{
slices--;
stacks--;
}
break;
}
glutPostRedisplay();
}
static void idle(void)
{
glutPostRedisplay();
}
const GLfloat light_ambient[] = { 0.0f, 0.0f, 0.0f, 1.0f };
const GLfloat light_diffuse[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat light_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat light_position[] = { 2.0f, 5.0f, 5.0f, 0.0f };
const GLfloat mat_ambient[] = { 0.7f, 0.7f, 0.7f, 1.0f };
const GLfloat mat_diffuse[] = { 0.8f, 0.8f, 0.8f, 1.0f };
const GLfloat mat_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat high_shininess[] = { 100.0f };
/* Program entry point */
#include "CMP3_MCI.h"
CMP3_MCI myMP3;
#include <mmsystem.h>
int main(int argc, char *argv[])
{
myMP3.Load("C:\\Users\\user\\Downloads\\many.wma");
myMP3.Play();
///(2)現在加PlaySoundA(...)
///PlaySoundA("C:\\Users\\user\\Downloads\\balarm.wav",NULL,SND_SYNC);
glutInit(&argc, argv);
glutInitWindowSize(640,480);
glutInitWindowPosition(10,10);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("GLUT Shapes");
glutReshapeFunc(resize);
glutDisplayFunc(display);
glutKeyboardFunc(key);
glutIdleFunc(idle);
glClearColor(1,1,1,1);
glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LESS);
glEnable(GL_LIGHT0);
glEnable(GL_NORMALIZE);
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_LIGHTING);
glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialfv(GL_FRONT, GL_SHININESS, high_shininess);
glutMainLoop();
return EXIT_SUCCESS;
}
week12-馬丁
<1>主題:鍵盤
<2>主題:聲音、音樂
<3>複習:階層T-R-T骨架
<4>作業:能操控的機器人
(1)在網頁上搜尋 wav 下載音檔
(2)開啟 CodeBlocks 建新專案 ,打好程式碼並設定Linker,程式碼如下
#include <windows.h>///因為依需基礎windows型別
#include <mmsystem.h>///Multimedia System裡面有聲音的函式
int main()
{
PlaySoundA("C:\\Users\\user\\Downloads\\balarm.wav",NULL,SND_SYNC);///兩個反斜線等於一個反斜線
PlaySoundA("C:\\Users\\user\\Downloads\\balarm.wav",NULL,SND_SYNC);
}
<3>到 https://www.transmissionzero.co.uk/software/freeglut-devel/ 下載檔案,解壓縮到桌面, freeglut 裡的 lib,裡面的 libfreeglut.a 複製一個並改名為 libglut32.a

<4>設定GLUT,加入兩行程式碼,不需要設定Linker,已經設定好,跑出聲音後再跑旋轉圖檔
<5>可以用按鍵控制聲音,增加五行程式碼
<6>可以用MP3檔播放音樂,將CMP3_MCI.h 放入GLUT的資料夾
week12電腦圖學
1.主題:鍵盤
2.主題:聲音,音樂
3.複習:階層T-R-T骨架
4.作業:能操控的機器人
增加兩行程式碼:
鍵盤控制聲音:(do re mi fa so)
程式碼片段
static void key(unsigned char key, int x, int y)
{
if(key=='1') PlaySoundA("C:\\Users\\user\\Downloads\\music\\do.wav",NULL,SND_ASYNC);
if(key=='2') PlaySoundA("C:\\Users\\user\\Downloads\\music\\re.wav",NULL,SND_ASYNC);
if(key=='3') PlaySoundA("C:\\Users\\user\\Downloads\\music\\mi.wav",NULL,SND_ASYNC);
if(key=='4') PlaySoundA("C:\\Users\\user\\Downloads\\music\\fa.wav",NULL,SND_ASYNC);
if(key=='5') PlaySoundA("C:\\Users\\user\\Downloads\\music\\so.wav",NULL,SND_ASYNC);
}
2.主題:聲音,音樂
3.複習:階層T-R-T骨架
4.作業:能操控的機器人
增加兩行程式碼:
鍵盤控制聲音:(do re mi fa so)
程式碼片段
static void key(unsigned char key, int x, int y)
{
if(key=='1') PlaySoundA("C:\\Users\\user\\Downloads\\music\\do.wav",NULL,SND_ASYNC);
if(key=='2') PlaySoundA("C:\\Users\\user\\Downloads\\music\\re.wav",NULL,SND_ASYNC);
if(key=='3') PlaySoundA("C:\\Users\\user\\Downloads\\music\\mi.wav",NULL,SND_ASYNC);
if(key=='4') PlaySoundA("C:\\Users\\user\\Downloads\\music\\fa.wav",NULL,SND_ASYNC);
if(key=='5') PlaySoundA("C:\\Users\\user\\Downloads\\music\\so.wav",NULL,SND_ASYNC);
}
06161091_蔡萓芹,week12
主題:鍵盤
主題:聲音、音樂
1.用CodeBlocks開一個新檔
複習:階層T-R-T骨架
主題:聲音、音樂
1.用CodeBlocks開一個新檔
2.加入聲音檔
3.打入程式碼並加上聲音檔路徑
程式碼:
//#include <iostream>
#include <windows.h>
#include <mmsystem.h>
//using namespace std;
int main()
{
PlaySoundA("C:\\Users\\user\\Downloads\\dive.wav",NULL,SND_SYNC);
}
4.到https://www.transmissionzero.co.uk/software/freeglut-devel/下載資料
5.將freeglut資料夾移動至桌面,將libfreeglut.a複製再貼上,檔名改成libglut.32
6.Create New Project:Glut
貼上資料途徑,打開程式碼(如圖)
7.加入聲音檔
8.下載其他wav音檔
9.將程式碼修改(如圖)
10.執行程式碼
結果:發出第一個聲音---跑出圖形畫面---按12345發出do re mi fa so
訂閱:
文章 (Atom)












































