https://www.youtube.com/watch?v=Cg2J-EIYrSg
2017電腦圖學 Computer Graphics 授課教師: 葉正聖 銘傳大學資訊傳播工程系 每週主題: 程式環境、點線面顏色、移動/旋轉/縮放與矩陣(Matrix)、階層性關節轉動(T-R-T)、做出機器人、打光、貼圖、glu/glut函式、鍵盤、滑鼠、計時器(timer)、讀入3D模型、粒子系統、聲音、特效、投影矩陣、攝影機與運鏡、機器人2.0、期末作品
2017年6月30日 星期五
2017年6月12日 星期一
Week14 20170612 芷萱的課堂筆記
2017年6月5日 星期一
Week13 20170605 芷萱的課堂筆記
作業一 :
目標 : 利用内插公式擺出各種擺出各種角度
angle=alpha*newAngle+(1-alpha)*oldAngle;
1.參考老師解說內插公式

4.存檔→將角度存在一個記事本file.txtif(key=='s'||key=='S'){ if(fout==NULL){ fout=fopen("file.txt","w+"); printf("現在我產生一個file.txt的檔案在目錄裡\n"); } fprintf(fout,"%.3f %.3f %.3f %.3f %.3f %.3f %.3f %.3f %.3f\n",angle[0],angle[1],angle[2],angle[3],angle[4],angle[5],angle[6],angle[7],angle[8]); printf("現在我把一些數字印到檔案裡%.3f %.3f %.3f %.3f %.3f %.3f %.3f %.3f %.3f\n",angle[0],angle[1],angle[2],angle[3],angle[4],angle[5],angle[6],angle[7],angle[8]); }
目標 : 利用内插公式擺出各種擺出各種角度
angle=alpha*newAngle+(1-alpha)*oldAngle;
1.參考老師解說內插公式

4.存檔→將角度存在一個記事本file.txtif(key=='s'||key=='S'){ if(fout==NULL){ fout=fopen("file.txt","w+"); printf("現在我產生一個file.txt的檔案在目錄裡\n"); } fprintf(fout,"%.3f %.3f %.3f %.3f %.3f %.3f %.3f %.3f %.3f\n",angle[0],angle[1],angle[2],angle[3],angle[4],angle[5],angle[6],angle[7],angle[8]); printf("現在我把一些數字印到檔案裡%.3f %.3f %.3f %.3f %.3f %.3f %.3f %.3f %.3f\n",angle[0],angle[1],angle[2],angle[3],angle[4],angle[5],angle[6],angle[7],angle[8]); }
if(key=='r'||key=='R'){
if(fin==NULL){
fin=fopen("file.txt","r");
printf("現在我產生一個file.txt的檔案在目錄裡\n");
}
fscanf(fin,"%.3f %.3f %.3f %.3f %.3f %.3f %.3f %.3f %.3f\n",&angle[0],&angle[1],&angle[2],&angle[3],&angle[4],&angle[5],&angle[6],&angle[7],&angle[8]);
glutPostRedisplay();
}
2017年5月22日 星期一
Week12 20170522 芷萱的課堂筆記
作業一 :
目標 : 利用回家作業機器人→增加整體轉動
1. 將身體當作轉動基準
2. 依序將其餘的頭手腳拉進身體程式碼內
目標 : 利用回家作業機器人→增加整體轉動
1. 將身體當作轉動基準
2. 依序將其餘的頭手腳拉進身體程式碼內
●紅色框框 → 身體
●紫色框框 → 其餘的頭、手、腳
3.即可顯示出整體轉動的杯麵(模型)
作業二 :
目標 : 計時器
1.加入 glutTimerFunc(0,timer,0);///(等多久,叫誰,參數)
2.再加上→可加上(方便測試計時器)
#include <stdio.h>
void timer(int t)
{
glutTimerFunc(100,timer,t+1);
angle++;
glutPostOverlayRedisplay();
printf("Hello\n");
}
3.即可跳出多行Hello
2017年5月15日 星期一
Week11 20170515 芷萱的課堂筆記
作業一 :
●注意其中一個安裝視窗選項要改成第三個
3.開啟CodeBlocks → 新增貝殼專案 File-New-Project→Console application(要用C++)

3.按F9執行此專案檔 → 即可看到視窗內有轉動的地球
老師示範小考 T-R-T
以大衛雕像的小腿為例 程式碼如下:
glPushMatrix();
glTranslatef(0.4,-1.0,0);///(4)再把(3)的腿掛在(0.4,-1.0,0)
glRotatef(angle,0,0,1);///(3)對Z軸做旋轉angle角度
glTranslatef(0.2,-0.5,0);///(2)把旋轉中心點放在畫面中間
drawLeg();///(1)畫一個小腿
glPopMatrix();
作業二 :
讀圖檔,用OpenCV 2.1
1.先下載opencv-2.1.0-vs2008.exe
2. 確認C:\OpenCV2.1\include\opencv\很多.h檔
C:\OpenCV2.1\lib\很多lib檔
C:\OpenCV2.1\bin\很多dll檔
3.開啟CodeBlocks → 新增貝殼專案 File-New-Project→Console application(要用C++)
4.在小畫家畫一張圖 存在C槽命名img.png
程式碼:
#include <opencv/highgui.h>
int main()
{
IplImage*img=cvLoadImage("C:/img.png");///圖檔儲存路徑
cvShowImage("a",img);///a為視窗檔名
cvWaitKey(0);
}
6.執行檔案 → 即可讀圖檔

作業三:
在視窗顯示會轉動的地球
1. myEarth.zip解壓縮製桌面 並將freeglut解壓縮至桌面
3.按F9執行此專案檔 → 即可看到視窗內有轉動的地球
程式碼:
4.變化版:將gluSphere(quad, 1, 30, 30); →glutSolidTeapot(0.3);
即可將圓形地球變成貼有世界地圖的茶壺
2017年5月8日 星期一
Week10 20170508 芷萱的課堂筆記
訂閱:
文章 (Atom)
























































