2012年8月31日 星期五

[oF] Workshop範例練習


撰寫OF程式碼
1.      開啟empty資料夾(of_v0071_win_cb_release\examples\empty)
2.      app資料夾下新增一個資料夾,名稱自訂(of_v0071_win_cb_release\apps)
3.      複製emptyExample資料夾到新增的資料夾中
4.      開啟資料夾中的emptyExample.cbp

使用滑鼠控制圓形解析度
1.      開啟main.cpp,可更改視窗大小
ofSetupOpenGL(&window, 1024, 768, OF_WINDOW)
1024為視窗寬、768為視窗高

2.      開啟testApp.cpp
3.      可看到
void testApp::setup(){
//初始設定值
}

//--------------------------------------------------------------
void testApp::update(){
//資料更新
}

//--------------------------------------------------------------
void testApp::draw(){
//繪製圖形
}




4.      撰寫程式碼
setup函式中只會在開啟程式時執行一次,updatedraw則是依照ofSetFrameRate的設定不斷執行函式中的程式

void testApp::setup(){
    ofBackground(0,0,0); //設定背景色為黑色
    ofSetFrameRate(30);  //每秒更新速度為三十次一秒
}

//--------------------------------------------------------------
void testApp::update(){
    ofSetCircleResolution(mouseX/32); //設定圓的邊數為滑鼠座標/32
}

//--------------------------------------------------------------
void testApp::draw(){
    ofColor(255,0,0); //設定顏色為紅色
    ofCircle(300,300,50,50);  //畫一個圓,位置在300,300,直徑30

    string s = "resolution = "+ofToString(mouseX/32,3);
    //定義一變數s,型態為字串,
    //ofToString函式將mouseX/32的數值轉換為字串,3為可顯示最大位數
    ofDrawBitmapString(s,mouseX,mouseY); //顯示字串s,位置在mouseX,mouseY
}




讓圓的解析度不斷累加,大於一百遍從頭
1.      開啟testApp.h,此檔案宣告各種全域變數

2.      定義變數r,型態為整數
int r;


3.      回到testApp.cpp底下的setup給定初始值
r=0;

4.        update中寫入,並且把ofSetCircleResolution(mouseX/32)改成ofSetCircleResolution(r)
r=r+1;
if(r>100
  r=0;
}



5.        讓畫面顯示的數值也為r,改寫draw
string s = "resolution = "+ofToString(mouseX/32,3);
改寫為
string s = "resolution = "+ofToString(r);



沒有留言:

張貼留言