顯示具有 06160353_洪嘉葳 標籤的文章。 顯示所有文章
顯示具有 06160353_洪嘉葳 標籤的文章。 顯示所有文章

2019年6月6日 星期四

700ml

電腦圖學 2019-06-06 
(1)作業Q&A
(2)複習:貼圖
(3)複習:打光
(4)複習:模型
1.下載OpenCV2.1 的 OpenCV-2.1.0-win32-vs2008.exe
2.執行,選擇路徑
3. 放在  C:\openCV2.1 並安裝
4.安裝好後再開啟CODEBLOCKS
5.開啟glut專案
6.搜尋freeglut window下載Download freeglut 3.0.0 for MinGW 
7.複製檔案位置
8.複製libfreeglut.a--->改成libglut32.a
9.把GLUT的main.cpp裡的程式全部刪掉,改成
#include <GL/glut.h>
#include <opencv/highgui.h> ///OpenCV High GUI讀圖
#include <opencv/cv.h> ///OpenCV cvCvtColor() to convert color
///程式碼是對的, 但是沒有設定好include, lib, bin
GLuint id1, id2, id3;///NOW2
float a=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glBindTexture(GL_TEXTURE_2D, id1);///id1 for background
    glBegin(GL_POLYGON);
        glTexCoord2f(0, 0); glVertex3f(-1, +1, 0);
        glTexCoord2f(0, 1); glVertex3f(-1, -1, 0);
        glTexCoord2f(1, 1); glVertex3f(+1, -1, 0);
        glTexCoord2f(1, 0); glVertex3f(+1, +1, 0);
    glEnd();
    glBindTexture(GL_TEXTURE_2D, id3);///id3 for rotating square
    glPushMatrix();
        glTranslatef(0.5, 0.5, 0);
        glRotatef(a++, 0, 0, 1);
        glScalef(0.3, 0.3, 0.3);
        glBegin(GL_POLYGON);
            glTexCoord2f(0, 0); glVertex3f(-1, +1, 0);
            glTexCoord2f(0, 1); glVertex3f(-1, -1, 0);
            glTexCoord2f(1, 1); glVertex3f(+1, -1, 0);
            glTexCoord2f(1, 0); glVertex3f(+1, +1, 0);
        glEnd();
    glPopMatrix();

    glBindTexture(GL_TEXTURE_2D, id2);///id2 for teapot
    glutSolidTeapot( 0.3 );
    glutSwapBuffers();
}
///void myInit()
GLuint myTexture(char * filename)
{
    IplImage * img = cvLoadImage(filename); ///NOW OpenCV
    cvCvtColor(img, img, CV_BGR2RGB);///convert color ///NOW OpenCV

    GLuint id;
    glEnable(GL_TEXTURE_2D);
    glGenTextures(1, &id );
    glBindTexture(GL_TEXTURE_2D, id);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, img->width, img->height, 0, GL_RGB, GL_UNSIGNED_BYTE, img->imageData);
    return id;
}
int main(int argc, char **argv)
{
    ///IplImage * img = cvLoadImage("marvel.jpg");
    ///cvShowImage("opencv", img);
    ///cvWaitKey(0);///等你按按鍵
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE |GLUT_DEPTH);
    glutCreateWindow("GLUT");///之後
    ///建好GLUT視窗,可以開始準備 3D 貼圖 (要在create...MainLoop才能建貼圖)
    id1 = myTexture("06160531.jpg"); ///myInit();///我們的貼圖在這裡
    id2 = myTexture("06160531-1.jpg");
    id3 = myTexture("06160531-2.jpg");

    glutDisplayFunc(display);
    glutIdleFunc(display);

    glutMainLoop();///之前
}
做出第一個作品

2019年5月30日 星期四

營養標示

電腦圖學2019-05-30 week15
1.主題:攝影機 運鏡
2.主題:投影 矩陣
3.複習:位置移動VS轉動
4.複習:背景貼圖
5.期末作品
http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10
下載:windows.zip解壓縮並下載\windows\Texture.exe
data.zip 解壓縮並下載\windows\data\

glut32.dll 下載\windows\glut32.dll
data丟入freeglut的bin裡面,再把source裡面的glm.h和glm.c(改成glm.cpp)還有projection.c丟入剛開啟的glut資料夾裡面。
在codeblocks裡面add file把glm.cpp匯入,就可以在codeblocks裡面執行project.c的檔案
程式碼套用到codeblocks裡面可以出現projection.exe

黑色的
旋轉的

完整版


2019年5月23日 星期四

碳酸鎂

電腦圖學

(1)主題:計時器Timer
(2)主題:內插公式
(3)主題:動畫
(4)期末作品
老師給的第一個程式碼

先把音樂檔案丟到freeglut/bin裡

播放音樂的程式碼


選轉茶杯的程式碼
內插程式碼

2019年5月16日 星期四

抗壞血酸鈉

電腦圖學2019-05-15 Week13


(1)主題:檔案

(2)主題:關節、擺動作

(3)主題:複習

(4)作業:機器人擺動作

打上程式碼
第二個程式碼
打上第三個程式碼
用Glut打上第四個程式碼
一邊的關節

用鍵盤調整旋轉部位(顯示數值)

2019年5月9日 星期四

手會抖想壞壞

電腦圖學2019-05-09 Week12

(1)主題:鍵盤

(2)主題:聲音、音樂

(3)複習:階層 T-R-T 骨架

(4)作業:能操控的機器人

開CodeBlock

打上程式碼

1.
2.打上第二個程式碼
#include <mmsystem.h>

PlaySoundA("C:\\Users\\user\\Downloads\\abc.wav",NULL,SND_SYNC);

3.打上第三個程式碼
#include <mmsystem.h>
    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);
4.打上第四個程式碼
#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();

2019年5月2日 星期四

不添加人工香料

電腦圖學week11

(1)小考:T-R-T轉
(2)主題:階層轉動,骨架
(3):鍵盤按鍵
1.到https://www.transmissionzero.co.uk/software/freeglut-devel/裡面,點擊 Download freeglut 3.0.0 for MinGW 。
2.打開CodeBlocks 打程式碼
3.打上另一個程式碼
4.第三個程式碼
5.可以用鍵盤1234控制關節
6.第五個程式碼



2019年4月25日 星期四

SkillBuilding

1期中考:Open GL必背10函式

2複習:移動、旋轉、縮放

3主題:T-R-T旋轉(改變旋轉軸)

4主題:glut

TODO:下載範例

Teansformation.exe 自轉vs公轉

打上範例
#include <GL/glut.h>
float angle=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
        glTranslatef(0,0.5,0);
        glutSolidTeapot(0.3);
        glPopMatrix();
        glPushMatrix();
        glPopMatrix();
        glPushMatrix();
            glTranslatef(0.50,0.625,0);
            glRotatef(angle,0,0,1);
            glTranslatef(0.6,0,0);

            glRotatef(-90,0,1,0);
            glutSolidCone(0.2,0.6,30,30);
            glPopMatrix();
            glutSwapBuffers();
}
void motion(int x,int y)
{
    angle = x;
    display();
}
int main(int argc,char**argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("week 10 TRT");

    glutDisplayFunc(display);
    glutMotionFunc(motion);

    glutMainLoop();

}

2019年3月28日 星期四

小飛象

電腦圖學

(1)主題:光PART1

(2)主題:模形OBJ檔

(3)實作:GLM VS OBJ
(4)回家作業

像之前一樣下載WINDOWS  glut32.dll DATA SOURCE
開啟 Light Material.exe

下載freeglut windows
留下部分程式
加上茶壺程式
#include <GL/glut.h>

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 };
void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glutSolidTeapot(0.3);
    glutSwapBuffers();

}
int main(int argc ,char**argv)

{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("Week03");
    glutDisplayFunc(display);
    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();
}


2019年3月21日 星期四

卡翹

電腦圖學W5
1.主題:旋轉Rotation
2.實作:glRotatef()
3.滑鼠轉.自動轉
試glRotatef(角度,X軸,Y軸,Z軸);
下載freeglut 3.0.0 MinGW Package
用code blocks 打開
打上程式
滑鼠轉動
打上滑鼠點擊程式


2019年3月14日 星期四

先到http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/
下載win32 data glut32.dll
把windows解壓縮
把data資料夾跟glut32.dll丟到windows
點開Transformation.exe
可以調整數值移動物體
到https://www.transmissionzero.co.uk/software/freeglut-devel/
下載
freeglut 3.0.0 MinGW Package
解壓縮
把libfreeglut複製成libglut32
打上程式碼
加上滑鼠移動的程式碼

2019年3月7日 星期四

06160353洪嘉葳W3


進入(http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/)
(win32,data,glut32.dll)
解壓縮windows.zipwindows資料夾
glut32.dll移至windows資料夾
點開shapes.exe
調整綠色數值可以改變形狀
開啟CodeBlocks GLUT
更改程式
加入(glColor3f(x,x,x);)更換顏色