2023年3月2日 星期四

銘傳夜間部教你寫程式 Week03 移動Translate

第一個課堂作業:下載範例包並嘗試操作

  • 去到以下網站下載這兩個安裝包[data][win32],也可直接點擊!
  •  https://jsyeh.org/3dcg10/

  • 下載好之後,全部解壓縮,然後把data資料夾拉進去Windows資料夾
  • 點擊Transformation.exe,如果成功開啟就是成功了!會閃退就請你重新嘗試看看!
  • 這個課堂作業要你用滑鼠往上往下滾動試看看操控數值

第一個程式:GLUT實作Translate

  • 學校教室的2022葉正聖老師上課軟體內有內建freeglut-MinGW-3.0.0-1.mp.zip,如果用自己的電腦或者沒有,下載網站在下面~~(按一下圖片紅色文字那邊就會自動下載)
  • https://www.transmissionzero.co.uk/software/freeglut-devel/
  • freeglut-MinGW-3.0.0-1.mp.zip檔案解壓縮後,點選freeglut-MinGW-3.0.0-1.mp檔案夾,在選擇freeglut檔案夾,最後打開lib檔案夾會看到以下畫面
  • 接著把"libfreeglut.a"複製一遍貼上得到"libfreeglut - 複製.a"

  • 把"libfreeglut - 複製.a"重新命名為"libglut32.a",副檔名不用動,完成初始設定了,接下來就可以開啟CodeBlocks
  • 老樣子開啟CodeBlocks(17.12版本最佳)

  • 點選左上角"File",接著拖移屬標到"New",但是不要按下去!右邊浮現選項後,選擇"Project"

  • 進入Project後,不用滑至最下方,選擇"GLUT Project"開源軟件,然後按下視窗右上角的"Go"

  • 進入第一個畫面直接按下"Next",下一頁設定名稱(Project title)為"Week03-1_GLUT_Translate",(檔案位置推薦設定在桌面)即可按下"Next"
  • 第三頁不能急著按"Finish",點選那神奇的三個點"..."
  • 然後就會出現一個視窗
  • 什麼都不要做,沒錯就是這樣,然後按下"X"即可

  • 接下來會直接跳出選擇資料夾頁面,Just like this,選擇一整個"freeglut-MinGW-3.0.0-1.mp"裡的"freeglut"資料夾(不需對檔案點兩下,按一下選取後,直接按確定即可)
  • 恭喜你成功完成了前置作業,畫面是灰色空白的,到目前為止跟上禮拜一樣,程式碼還是GLUT的範例,請去左方"Projects",展開你的檔案名稱,展開"Sources",找到主程式"main.cpp"點擊兩下

  • 接著畫面會顯示範例程式碼,就是原本會跑出紅色球,紅色三角錐,跟紅色甜甜圈的那個


  • 不要懷疑!全部刪除!寫上屬於自己的程式碼~~

  • 首先寫上程式碼架構

///#include <bits/stdc++.h>函式庫是一個包含近乎90%函式的一個函示庫(剛好這就是其中10%)母湯用
#include <GL/glut.h> ///(For Windows)
///#include <GLUT/glut.h>(For Mac OS)
void display()
{
    glutSolidTeapot( 0.3 ); ///畫出實心的茶壺
    glutSwapBuffers();  ///交換顯示出來
}
int main(int argc,char *argv[]) ///這個main()括號裡的程式碼可以程式讀取小黑內容
{
    glutInit(&argc, argv); ///啟用GLUT功能
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); ///GLUT顯示模式
    glutCreateWindow("Week03-1_GLUT_Translate"); ///要建立一個視窗,這是他的名稱
    glutDisplayFunc(display); ///要顯示的函示 display()
    glutMainLoop();  ///主迴圈卡在後面
}

    • 這個程式碼只會出現一個很蠢的茶壺
    • 補上三行程式碼(已標註紅色),讓茶壺變成有位移的AD茶壺
    • 以下為Week03-1_GLUT_Translate範例:

    第二個程式:GLUT實作使用滑鼠滾動Translate

    • 仿造以上開啟檔案方法開啟一個新的檔案,以下這一頁不須再點"..."來找尋"freeglut"資料夾,因為你剛剛找過電腦自動存檔了,除非重啟或者換一台電腦才需重新抓位置
    • 程式碼還是GLUT的範例,請去左方"Projects",展開你的檔案名稱,展開"Sources",找到主程式"main.cpp"點擊兩下
    • 全部刪除!寫上屬於自己的程式碼~~
    • 有了位移還不夠,還要能用滑鼠控制,我們要來寫讓他可以用滑鼠按左鍵移動的程式碼
    • 補上的程式碼會標註紅色
    • 以下為Week03-2_GLUT_使用滑鼠滾動Translate範例:


      沒有留言:

      張貼留言