2018年1月11日 星期四
2017年10月19日 星期四
李柏徹的計算機圖學學習紀錄04
1. 參照第一周的教學,產生內建專案

2.了解呈現出那六個3D模型的程式碼,並在前三個程式碼後面分別加入茶壺



成果:
3. 使用glColor3f(r,g,b); 進行更改顏色

4. 嘗試修改glRotated(a,x,y,z);//a=t*90; 即每T時間轉90度
以下以下遮罩調後四個全部的旋轉,前兩個統一遮罩調第一行,對第一個的第二行進行修改嘗試

5。嘗試修改glTranslatef(x,y,z);和加入glScalef(x,y,z)來位移和縮放物體

程式碼整理:
1.Translate(位移)
glTranslated( x, y, z):朝( x, y, z)方向平移
2.Rotate(旋轉): 右手座標系統
glRotated( R, x, y, z):以( x, y, z)為軸轉R角度。
3.Scale(縮放)
glScalef( x, y, z):x,y,z為縮放率,x, y, z座標分別縮放為原本的 x, y, z倍

2.了解呈現出那六個3D模型的程式碼,並在前三個程式碼後面分別加入茶壺



成果:
3. 使用glColor3f(r,g,b); 進行更改顏色

4. 嘗試修改glRotated(a,x,y,z);//a=t*90; 即每T時間轉90度
以下以下遮罩調後四個全部的旋轉,前兩個統一遮罩調第一行,對第一個的第二行進行修改嘗試

5。嘗試修改glTranslatef(x,y,z);和加入glScalef(x,y,z)來位移和縮放物體

程式碼整理:
1.Translate(位移)
glTranslated( x, y, z):朝( x, y, z)方向平移
2.Rotate(旋轉): 右手座標系統
glRotated( R, x, y, z):以( x, y, z)為軸轉R角度。
3.Scale(縮放)
glScalef( x, y, z):x,y,z為縮放率,x, y, z座標分別縮放為原本的 x, y, z倍
羅宣的學習筆記WEEK04
旋轉茶壺
把
glutSolidSphere(1,slices,stacks); [ 實心圓形旋轉 ]
改成
glutSolidTeapot(1); [ 實心茶壺旋轉 ]
成功把旋轉的圓形變成旋轉的茶壺
重疊圖案
原本程式碼再加入glutSolidTeapot(1);
就會跟原本的圖重疊旋轉
加入
glColor3d(1,0,0);
改變顏色
程式碼分析
const double t = glutGet(GLUT_ELAPSED_TIME) / 1000.0;const double a = t*90.0;
glPushMatrix(); [備份矩陣]
glTranslated(-2.4,1.2,-6); [移動 (X,Y,Z) (左,上,內) ]
glRotated(60,1,0,0); [60度旋轉,因為(1,0,0)-->繞著X逆時針旋轉60度]
glRotated(a,0,0,1); [持續旋轉,因為(0,0,1)-->繞著Z作逆時針旋轉]
glColor3d(1,1,0); [改顏色]
glutSolidTeapot(1); [實心茶壺]
glPopMatrix(); [還原矩陣]
( 一直在轉動 )
縮放
glScaled(2,2,2); [ XYZ都放大兩倍 ]2017年10月12日 星期四
田蜜-Week 04
改變display中的函式
1.設定位置
glTranslated(x方向移動, y方向移動, z方向移動);
-字尾d表示為double,若f則表示flaot
2.加上其他圖形
-茶壺 glutSolidTeapot(1);
3.改變顏色
glColor3d(1,0,0);
4.改變旋轉情形:
glRotated(角度, 對x軸旋轉, 對y軸旋轉, 對z軸旋轉);
5.改變比例大小:
glScaled(x方向放大倍率, y方向放大倍率, z方向放大倍率);
用滑鼠移動圖案
1.開啟一個茶壺圖案
2.加入mouse(),motion()
3.執行結果
蒲立年的學習筆記 Week_04
Topic 1 : 移動(Translate)、旋轉(Rotate)、縮放(Scale)
Translate :
glTranslated(X, Y, Z) - 朝(x,y,z)方向平移
Rotate : *以右手定律為基礎*
glRotated(角度,x,y,z) => glRotated(60,1,0,0)是以向量(1,0,0)X軸為選轉軸逆時針旋轉60度
glRotated(a,0,0,1) => 由於a= t*90.0不是定值,所以可以使其一直旋轉
沒有旋轉的時候~
從左到又以X軸90、60、30度逆時針旋轉~
Scale :
glScale(x縮放率,y縮放率,z縮放率)
原圖~
從左到右一程式碼之設定倍率縮放~
Topic 2 : Mouse and Motion
范姜紹瑋_Week4_筆記
移動圖形
1.照舊,先開啟預設的GLUT專案
2.找到程式碼中的"glTranslated(a,b,c)"
(第一個參數a表示x座標;
第二個參數b表示y座標;
第三個參數c表示z座標)
--------------------------------------------------------------------------------------------------------------------------
旋轉圖形
1.找到程式碼"glRotated(a,b,c,d)"
( 參數a表示以角度;
參數b表示x向量;
參數c表示y向量;
參數d表示z向量 )
--------------------------------------------------------------------------------------------------------------------------
參數b表示朝著y向量延伸的倍數;
參數c表示朝著z向量延伸的倍數)
1.照舊,先開啟預設的GLUT專案
2.找到程式碼中的"glTranslated(a,b,c)"
(第一個參數a表示x座標;
第二個參數b表示y座標;
第三個參數c表示z座標)
--------------------------------------------------------------------------------------------------------------------------
旋轉圖形
1.找到程式碼"glRotated(a,b,c,d)"
( 參數a表示以角度;
參數b表示x向量;
參數c表示y向量;
參數d表示z向量 )
--------------------------------------------------------------------------------------------------------------------------
以延伸圖形的方式,放大圖形
"glScalef(a,b,c)"
(參數a表示朝著x向量延伸的倍數;參數b表示朝著y向量延伸的倍數;
參數c表示朝著z向量延伸的倍數)
2017年10月9日 星期一
阿凱不糊塗學習的圖學筆記WEEK04
練習Translate, Rotate, Scale
移動、旋轉、縮放
1.開啟新的GLUT專案
glPushMatrix();
glTranslated(-2.4,1.2,-6);
glRotated(60,1,0,0);
glRotated(a,0,0,1);
glutSolidSphere(1,slices,stacks)
glPopMatrix();
(下圖為原本執行結果)
2.修改程式碼
原部分程式碼
glPushMatrix();
glTranslated(-2.4,1.2,-6);
glRotated(60,1,0,0);
glRotated(a,0,0,1);
glutSolidCone(1,slices,stacks)
glPopMatrix();
修改後
glPushMatrix();
glTranslated(2,1.2,-6);//移動位置(X,Y,Z)
glRotated(60,1,0,0);//(旋轉60度,X軸,Y軸,Z軸)
glRotated(a,0,0,1);//沿Z軸不斷旋轉a
glScalef(2,2,2);//沿三軸放大2倍
glColor3f(1,0,1);//修改顏色
glutSolidTeapot(1);//將圖形改成茶壺
glPopMatrix();
執行!!!!!!!!!!!!!!!!!!!!!!!
吳映廷 計算機圖學 week4
今天練習了Translate, Rotate, Scale 3種函式。
1.
在新的glut專案裡面加上
glColor3d(1,1,0);
glutSolidTeapot(1);
畫3個茶壺
2.
程式碼是
glPushMatrix();
glTranslated(-2.4,1.2,-6);
glRotated(60,1,0,0);
glRotated(a,0,0,1);
glColor3d(1,1,0);
glutSolidTeapot(1);
glutSolidSphere(1,slices,stacks);
glPopMatrix();
1.
在新的glut專案裡面加上
glColor3d(1,1,0);
glutSolidTeapot(1);
畫3個茶壺
2.
程式碼是
glPushMatrix();
glTranslated(-2.4,1.2,-6);
glRotated(60,1,0,0);
glRotated(a,0,0,1);
glColor3d(1,1,0);
glutSolidTeapot(1);
glutSolidSphere(1,slices,stacks);
glPopMatrix();
上面的rotated是照x軸轉動60度
下面是隨時間變化照z軸轉a度
把程式碼註解掉就可以看到差別
接下來可以玩玩Scale, 在程式碼裡面加上glScaled(2, 2, 2);
可以發現他x,y,z三軸都放大了2倍
4.
老師最後說明,記得使用glPushMatrix();和glPopMatrix();維持矩陣的乾淨。
2017年10月8日 星期日
俊凱的Week04筆記
1.開啟GLUT Project
2.修改範例專案
glPushMatrix();
glTranslated(0,-1,-6);//移動位置(x,y,z)
glRotated(60,1,0,0);//旋轉(角度,x,y,z)
glRotated(a,0,0,1);//不斷旋轉(變數,x,y,z)
glScalef(1,1,1);//縮放(x,y,z)
//glutSolidCone(1,1,slices,stacks);
glColor3d(1,1,0);
glutSolidTeapot(1.5);
glColor3d(1,0,0);
glPopMatrix();
2.修改範例專案
glPushMatrix();
glTranslated(0,-1,-6);//移動位置(x,y,z)
glRotated(60,1,0,0);//旋轉(角度,x,y,z)
glRotated(a,0,0,1);//不斷旋轉(變數,x,y,z)
glScalef(1,1,1);//縮放(x,y,z)
//glutSolidCone(1,1,slices,stacks);
glColor3d(1,1,0);
glutSolidTeapot(1.5);
glColor3d(1,0,0);
glPopMatrix();
詠銓_Week04_Note
Class: 移動、旋轉、縮放
1.開啟一個Glut專案,找到display函式

2.觀察其程式碼,大致有以下:
glPushMatrix(); //儲存矩陣
glTranslated(-2.4,1.2,-6); //移動
glRotated(60,1,0,0); //轉動(角度,旋轉軸)
glRotated(a,0,0,1); //隨時間轉動,a = t*90.0
glutSolidSphere(1,slices,stacks); //畫出實心球
glPopMatrix(); //拿出矩陣
3.移動代表從圖的中心開始,移動到指定坐標。例如:2中的程式碼可以知道將要畫出一實心圓球,而編譯後的程式顯示此球在左上方,而當中的移動程式碼glTranslated(-2.4,1.2,-6);的x,y座標也是顯示在左上方,兩者相符。
4.轉動代表對其中一個轉軸,轉動一角度,如果此角度隨著時間變化,那此圖會一直轉動,其中 +x方向為向右,+y為向上,+z為出銀幕方向(右手坐標系)。若同時有多個座標值,則會依此向量方向轉動。
5.經過測試發現,x,y,z軸並非固定不動,而是跟著圖。
比如說,將中上的圓錐(cone)依x軸轉90度

接著讓它依z軸轉動,我們看到,它繞著現在的-y軸轉動

但對此圓錐來說,它的z軸已經依著x轉90度,成為了整個圖的-y方向,所以看到他依著-y方向轉動其實是對著z軸轉動。
6.縮放,程式碼:glScaled(1,1,2)代表各個座標軸依分別倍率縮放,此例中,z軸被放大了兩倍,為了方便觀察我們將圓錐對x軸轉動90度,可以看到此圓錐的z軸伸長了2倍,而其他座標不變。

Class:滑鼠控制
1.開啟一個Glut專案,找到display函式

2.觀察其程式碼,大致有以下:
glPushMatrix(); //儲存矩陣
glTranslated(-2.4,1.2,-6); //移動
glRotated(60,1,0,0); //轉動(角度,旋轉軸)
glRotated(a,0,0,1); //隨時間轉動,a = t*90.0
glutSolidSphere(1,slices,stacks); //畫出實心球
glPopMatrix(); //拿出矩陣
3.移動代表從圖的中心開始,移動到指定坐標。例如:2中的程式碼可以知道將要畫出一實心圓球,而編譯後的程式顯示此球在左上方,而當中的移動程式碼glTranslated(-2.4,1.2,-6);的x,y座標也是顯示在左上方,兩者相符。
4.轉動代表對其中一個轉軸,轉動一角度,如果此角度隨著時間變化,那此圖會一直轉動,其中 +x方向為向右,+y為向上,+z為出銀幕方向(右手坐標系)。若同時有多個座標值,則會依此向量方向轉動。
5.經過測試發現,x,y,z軸並非固定不動,而是跟著圖。
比如說,將中上的圓錐(cone)依x軸轉90度

接著讓它依z軸轉動,我們看到,它繞著現在的-y軸轉動

但對此圓錐來說,它的z軸已經依著x轉90度,成為了整個圖的-y方向,所以看到他依著-y方向轉動其實是對著z軸轉動。
6.縮放,程式碼:glScaled(1,1,2)代表各個座標軸依分別倍率縮放,此例中,z軸被放大了兩倍,為了方便觀察我們將圓錐對x軸轉動90度,可以看到此圓錐的z軸伸長了2倍,而其他座標不變。

Class:滑鼠控制
2017年10月6日 星期五
訂閱:
文章 (Atom)




























