顯示具有 04162646_王浩晉 標籤的文章。 顯示所有文章
顯示具有 04162646_王浩晉 標籤的文章。 顯示所有文章

2017年7月1日 星期六

Week18 浩丁週街一學期的期末成果

  這天是我們的期末成果展示,心裡十分期待,希望自己的作品可以得到期許的成績,也看到了很多人的用心成果,其中印象最深的是最後一位同學的鋼鐵人,我真的佩服他的毅力耐心, 也順理成章拿到第一名。
  這是我成功的Youtube網址:https://youtu.be/xb5aSIh0eTQ


十分感謝小葉老師在這學期的用心教導,我們都能感受到老師的辛勤奉獻,再次感激小葉老師的用心。

Week17 浩丁週街的上課筆記

第17週上課筆記

Week 15 浩丁週街的上課筆記

第15週上課筆記

Week14 浩丁週街的上課筆記

第14週上課筆記

Week13 浩丁週街的上課筆記

第13週上課筆記

Week 12浩丁週街的上課筆記(補)

第12週上課筆記

2017年5月8日 星期一

Week11 浩丁洲街的上課筆記

Hw 1
到小葉老師的網址,下載 data.zip、windows.zip、glut32.dll

打開Projection, 試著移動gluLookAt裡面的數值

























建立一個新的GLUT專案,把main.cpp兌換成老師的main.cpp(偷天換日)


















2017年5月1日 星期一

Week10 浩丁洲街的上課筆記

HW1

3D Exploration v1.81 下載, 接著到小葉老師的網址 , 下載 Data.zip。
安裝 3D Exploration 後,打開data裡面的 足球soccerball 儲存(save as) ,
存檔類行為cpp open GL code, 
Export type 選擇 sample APP,取名叫1.cpp。

接著打開codeblocks,新建一個專案OpenGL,接著我們要偷天換日,
將儲存的專案裡面的main.cpp以1.cpp取代。

2017年4月24日 星期一

Week09 浩丁洲街的上課筆記

Hw1
  開始老師讓我們玩了一個很久以前的遊戲,Google NEHe Lesson 32,下載最下面visual C++, 這是我的分數




















Hw2
  我們要加點聲音進去(用滑鼠鍵點就可發出聲音),新增GLUT專案, 加入Multimedia System表頭檔 #include <mmsystem.h>,在主函式前面加入Mouse函式,
void mouse(int button, int state , int x, int y)
{
    PlaySound("C:\\Users\\user\\Downloads\\Lesson32\\Data/Shot.wav", NULL, SND_ASYNC); ///Copy this line  聲音檔案的路徑
}
*NOTE 要把檔名裡面的目錄裡的斜線,從 \ 變成 (A) \\  or   (B) / 










Hw3
  如果用鍵盤按鍵就能發出聲音就更棒了。



2017年4月10日 星期一

Week06 浩丁洲街的上課筆記

考試的內容 非常重要!


  glPushMatrix();   ///備份矩陣
    glTranslatef(x, y, z);///移動
    glRotatef(angle, x, y,z)///旋轉
    glScalef(x,y,z);//縮放大小
   glBegin(GL_POLYGON);///開始畫
        glColor3f(r, g, b);///顏色
        glNormal3f(nx, ny, nz);///打光法向量
        glTexCoord2f(tx, ty);///貼圖座標
        glVertex3f(x, y ,z);///頂點
 glEnd();///結束畫
glPopMatrix();///還原矩陣


用刪除的方式寫出打光的程式碼









接著是加入不同形狀的東西



2017年3月27日 星期一

Week05 浩丁洲街的上課筆記

期中考題介紹:
(1). 練習10題 100%


(2). 網址: jsyeh.org/3dcg10 裡面載<1>. data.zip <2>. windows.zip  <3>. glut32.dll

放入windows 文件夾裡面,打開Transformation.exe

嘗試著用右手來看車子的旋轉(右手安培定則)
  

(3). 負負得正 若glRotatef(-90.0, 0.00, -1.00, 0.00)時,會與glRotatef(90.0, 0.00, 1.00, 0.00)一模一

樣。


(4). 口訣: 左耳碰左肩, 從下往上讀, 畫圈圈

glPushMatrix();  //備份矩陣
       
        glTranslatef(x, y, z);  //移動
         glRotatef(角度, x, y, z);  //旋轉
         glScalef(x, y, z);  //縮放
         glBegin(GL_POLYON);  //開始
               
                 glcolor3f(r, g, b);  //顏色
                 glNormal3f(nx, ny, nz);  //法向量
                 glTexcoord3f(tx, ty);  //貼圖座標
                 glVertex3f(x, y ,z);  //頂點

glEnd();  //結束畫
glPopMatrix();  //還原Matrix

2017年3月20日 星期一

Week03 浩丁洲街的上課筆記(補)

HW1. 複習上一周畫茶壺
像之前一樣,打開GLUT專案,修改裡面的程式碼以簡潔並劃出一個茶壺。
程式碼:
#include <GL/glut.h>
static void display (void)
{
    glutSolidTeapot(0.3);
    glutSwapBuffers();


}


int main(int argc, char *argv[])
{

    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("I am number 1!!!");
    glutDisplayFunc(display);
    glutMainLoop();

}
 
HW2. 加入MouseFunc,抓滑鼠點下去的數據並可改變茶壺顏色
在主函式中加入glutMouseFunc(mouse);
並且在上方加入mouse 函式 static void mouse (int button, int state, int x  , int y )
並且加入 #include <stdio.h> ,讓我們可以用到 printf 可以將mouse4個數據列印出來。完成後如下圖:
 
接下來希望再點不同地方的時候茶壺可以更改顏色,在printf()函式下加入這兩行程式碼:
glColor3f(1,x/300.0,y/300.0);
glutPostRedisplay(); //呼叫此函式來重新顯示(整理)螢幕
 
*note main主函示中可該便是窗的大小(預設是300X300)
只要加入 glutInitWindowSize(500, 500); 可改變為500X500的視窗大小哦。
接著是要邊移動滑鼠邊改變顏色了,在主函式中加入glutMotionFunc(motion); 並在上方加入motion函式:
static void motion (int x, int y )
{
    printf("%d %d\n", x, y);


}
    glColor3f( 1, x/300.0, y/300.0);
    glutPostRedisplay();加入motion函式中
即為:
static void motion (int x, int y )
{
    printf("%d %d\n", x, y);
    glColor3f( 1, x/300.0, y/300.0);
    glutPostRedisplay();
}


Week04 浩丁洲街的上課筆記

電腦圖學
(1) 主題:旋轉Rotate
(2)主題: 移動Translate
(3)主題: 縮放 Scale

先畫一個茶壺, 這裡不多介紹。接著更改一些程式可以移動茶壺
#include <GL/glut.h>

void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
        glTranslatef(0.5,0, 0);
        glutSolidTeapot(0.3);
    glPopMatrix();
    glutSwapBuffers();

}


void motion (int x, int y)

{

    mouseX = (x-150)/ 150.0 ;
    mouseY = -(y-150)/ 150.0;
    glutPostRedisplay();
}

int main(int argc, char **argv)

{

    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("04162646 GGGGGGGGGGG");

    glutDisplayFunc(display);
    ///glutMouseFunc(mouse);
    ///glutMotionFunc(motion);

    glutMainLoop();

}


接著宣告mouseX mouseY 的值在glTranslatef作更改,把mouseX mouseY加入裡面, 加入motion函式,程式碼為
void motion (int x, int y)

{

    mouseX = (x-150)/ 150.0 ;
    mouseY = -(y-150)/ 150.0;
    glutPostRedisplay();
}
圖片支援















這樣就可以移動茶壺了


若將glTranslatef();更改為glScalef(); 茶壺就可以放大縮小了。


後面的f為float的表示。

2017年3月6日 星期一

Week02 浩丁洲街的上課筆記

一、第一周作業複習
1.OpenGL專案
2.GLUT專案

1).在Codeblocks中,File-New-Project. 選OpenGL專案。


2).在Codeblocks中,File-New-Project,選GLUT專案。



二、GLUT篩檢程式碼
1.把glut專案刪減成10行。將老師發過來的截圖對照的刪除。
#include <GL/glut.h>
static void display (void)
{
    glutSolidTeapot(0.9);  ///畫茶壺
    glutSwapBuffers();
}
int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);

    glutCreateWindow("I am Spiderman");


    glutDisplayFunc(display);
    glutMainLoop();


}


2.將茶壺改色。
話茶壺之前,在static void display (void)裡面加上一行,glColor3f(R,G,B);
(若超過1的數字要在後面除255.0)


3. 實作點線面:三角形
打開檔案Shapes,右鍵找出TRAIANGLES,改變數據,可調整顏色、位置。





2017年2月20日 星期一

Week01 浩丁洲街的上課筆記


HW_1













HW_2

1. 打開codeblocks, 點開File,裡面的New,點選Project。



2. 往下拖曳,點選OpenGL,next之後打上學號,儲存在桌面。


3. codeblocks左邊點開專案,點選main.c,出現一堆以前人類打出來的程式碼。


4. 按上方的執行(F9),跑出小黑窗,裡面有個旋轉的三角形。



HW_3

1. codeblocks,點開File,裡面的New,點選Project。


2. 點選GLUT,名稱及儲存路徑完成後下一步,將老師傳給我們的freeglut檔案的路徑複製起來,貼在GLUT的location。



3. 點開左邊新的專案裡面的main.cpp,按下執行按鈕(F9),即可跑出圖像。