2017年9月21日 星期四

楊喻文的學習手札 2017/9/21

week02

打造一個圖片

事前提要:
1. 首先先按照上周先把freeglut開出來
2. 下載並開啟notepad++

激勵:
*這個只需要上周main.cpp當中的幾行就可以完成:)
(傳說中的5行取代1xx行程式碼!)

小撇步:
同時打開codeblocks和notepad++就可以用複製貼上了! 
但是用notepad++寫完之後,好像還是要用codeblock跑才行

 程式碼 _1 

#include <GL/glut.h>  ///呼叫3D GLUT外接


void display() ///自訂函數
{
glClearColor(1,0,0,0); ///標示清畫面的顏色是紅色(交換背景的油漆顏色)
                      ///(紅R,綠G,藍B,半透明度A)
          *這行如果放了一堆,他只會記得最後一行的顏色 (註1)
glClear(GL, COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) 
        ///清空背景顏色(記憶體) ///這行是動詞  ///預設是黑色
          *如果沒有設定顏色,預設是黑色,如果這行放在設顏色之前,晃動畫面會變顏色!(註2)
        glColor3f(1,0,1) ///茶壺色彩現在是紫色 三個參數 介在0.0~1.0之間
              ///(紅R,綠G,藍B)    

glutSolidTeapot(0.3); ///畫出實心茶壺 座標0.3 (註3)
glutSwapBuffers(); ///交換繪圖記憶體(交換之後畫面再也不會閃爍,畫面更漂亮<3)
}
///使用glut的都是用外掛(原本就有寫好的)
///使用gl代表是gl函示
int main(int argc, char *argv[]) ///主程式的函示,吃argc參數數量
{
glutInit(&argc, argv); ///開始使用GLUT
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
        ///開始設定顯示模式
        glutCreateWindow("GLUT Shapes"); ///建立GLUT 3D視窗
                           ///("這邊可以打視窗名")

        glutDisplayFunc(display); ///註冊display函式
glutMainLoop();  ///主要迴圈
}

執行結果:
是一個黑底的白色茶壺的圖~~~ (這是預設(0, 0, 0, 0))
設成紅色背景(1, 0, 0, 0)的話,就是紅底的了
*可以自己再嘗試換成別的背景顏色
(從這行「glClearColor(1,0,0,0);」的後面數字去改)

再設定茶壺顏色為紫色(1, 0, 1)的話...這畫面就變得很奇怪>"<
*可以自己再嘗試換成別的茶壺顏色
(從這行「glColor3f(1,0,1);」的後面數字去改)


 程式碼 _2 
///1和2的差別主要就是在於把茶壺換成多邊形
///還有畫點線面
#include <GL/glut.h>  

void display() 
{
        glClear(GL, COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glClearColor(1,0,0,0); 
        glColor3f(1,0,1)
                   ///新東西
glBegin(GL_POLYGON); ///表示接下來的點是以多邊形開始畫
///點
glVertex3f(1, 1, 0); ///頂點的英文是vertex
glVertex3f(-1, 1, 0); ///3f表示x,y,z三個參數float
glVertex3f(0, -1, 0);
glEnd(); ///結束畫
glutSwapBuffers(); 
}

int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
        glutCreateWindow("GLUT Shapes"); 
glutDisplayFunc(display); 
glutMainLoop(); 
}


執行結果:
按照上面程式執行的結果是一個三角形
如果加了很多點進去,就可以畫奇怪的東西出來了


回家作業:畫一個20個以上頂點的圖形
*可以利用小畫家來協助找頂點和顏色
*想要改成畫線就好的話,自己找投影片(?)



----------------------------------------------------------------------------------------------------------------

註1

註2

晃動畫面

註3

更改座標由0.3->0.8,

-----------------------------------------------------------------------------------------------------------------
其他:
顏色分兩種:背景和文字
Process Exploror是微軟寫出來的很厲害的防毒軟體








沒有留言:

張貼留言