ofGraphics

functions

edit functions on GitHub

ofGraphics functions

ofBackground(...)

void ofBackground(int r, int g, int b)

背景色を設定します。入力にはr、g、bの値 (0-255)を使います。背景はdraw()が実行される直前に自動的に塗りつぶされるので、背景色をずっと変更しない場合はこの命令をsetup()の中で呼び出します(アプリケーションの開始時に1度だけ呼び出します)。背景色を変化させる場合は、この命令はupdate()の中で呼び出します。

ofBgColorPtr()

float * ofBgColorPtr()

背景色を取得します。
例:

float * bgColor = ofBgColorPtr();
//個別の値を取り出す!
float r = bgColor[0];
float g = bgColor[1];
float b = bgColor[2];
float a = bgColor[3];

ofSetBackgroundAuto(...)

void ofSetBackgroundAuto(bool bAuto)

背景を自動的に塗り潰しするか(初期設定)自動的に塗り潰しをしないかを設定します。自動的に塗り潰さないように設定した場合はフレーム更新のたび(drawの一番最初)に塗り潰されないので、ofBackgroundが呼び出された時に塗り潰しが行われます。

ofbClearBg()

bool ofbClearBg()

背景の塗り潰しが自動に設定されているか手動に設定されているかを知らせます。

ofSetCircleResolution(...)

void ofSetCircleResolution(int res)

ofCircle命令で描く円の解像度を設定します。デフォルトでは円は22個の頂点によって描画されますが、より大きな円を描く必要があればこの命令で解像度を調整することができます。すべての円は最適化のためにディスプレイリストを使ってOpenGLの中にキャッシュされます。

ofSetRectMode(...)

void ofSetRectMode(int mode)

四角形を描画するときの座標指定モードを、左上角か中心のどちらのx,y座標を指定するかを設定します。オプションはOF_RECTMODE_CENTERとOF_RECTMODE_CORNERが選択できます。

ofGetRectMode()

ofRectMode ofGetRectMode()

四角形を描画するときの座標指定モードが、中央からか左上角からか、どちらに設定されているかを知らせます。

ofRect(...)

void ofRect(float x1, float y1, float w, float h)

x、y座標に指定された幅と高さで、四角形を描画します。

ofTriangle(...)

void ofTriangle(float x1, float y1, float x2, float y2, float x3, float y3)

3つの点を結ぶ三角形を描画します: (x1, y1),(x2, y2),(x3, y3).

ofCircle(...)

void ofCircle(float x, float y, float radius)

x,yを中心として、指定された半径の円を描画します。

ofEllipse(...)

void ofEllipse(float x, float y, float w, float h)

点(x,y)に指定された高さ(w)と幅(h)で楕円を描画します。

ofLine(...)

void ofLine(float x1, float y1, float x2, float y2)

2点を結ぶ直線を描画します。: (x1,y1),(x2,y2)

ofCurve(...)

void ofCurve(float x0, float y0, float x1, float y1, float x2, float y2, float x3, float y3)

点(X1, y1)から点(x2, y2)までの曲線を描画します。点(x0, y0)と点(x3, y3)の2つの制御点によって曲線が形成されます。

ofBezier(...)

void ofBezier(float x0, float y0, float x1, float y1, float x2, float y2, float x3, float y3)

点(x0、y0)から点(x3、y3)までベジエ曲線を描画します。ベジェ曲線は点(x1,y1)と点(x2,y2)の2つの制御点と両端の点とのそれぞれの接点を通る方法によって形成されます。

ofSetPolyMode(...)

void ofSetPolyMode(int mode)

同一のポリゴンで重なりあう部分をどのように描画するかを設定します。次のモードが設定可能です:

OF_POLY_WINDING_ODD - OF_POLY_WINDING_NONZERO - OF_POLY_WINDING_POSITIVE - OF_POLY_WINDING_NEGATIVE - OF_POLY_WINDING_ABS_GEQ_TWO -

ofBeginShape()

void ofBeginShape()

新しい形状の描画を開始するために呼び出します。この命令に続いて頂点を列挙して、最後にofEndShape()を呼び出します。

//星型を描画
ofSetPolyMode(OF_POLY_WINDING_NONZERO);
ofBeginShape();
  ofVertex(400,135);
  ofVertex(215,135);
  ofVertex(365,25);
  ofVertex(305,200);
  ofVertex(250,25);
ofEndShape();

ofVertex(...)

void ofVertex(float x, float y)

描画する形状の中の1つの点を定義します。ofBeginShape()とofEndShape()の間において呼び出されます。

ofCurveVertex(...)

void ofCurveVertex(float x, float y)

描画する形状の中の1つの点を定義します。ofVertexとの違いは形状の輪郭線が直線のかわりに曲線になることです。曲線はCatmull-Rom式によって自動的に生成されます。ofBeginShape()とofEndShape()の間において呼び出されます。

ofBezierVertex(...)

void ofBezierVertex(float x1, float y1, float x2, float y2, float x3, float y3)

3点を用いてベジェ曲線の頂点を記述します。ofBeginShape()とofEndShape()の間において呼び出されます。

ofNextContour(...)

void ofNextContour(bool bClose)

一つの形状の中で、複数の輪郭線を描画できるようにします。形状の中に新しい輪郭線を作るためには、この命令をofBeginShape()とofEndShape()の間において呼び出します。オプション引数の'bCLose'を使用した場合、trueにすると一つ前の輪郭が自動的に閉じられます。bCloseは初期設定ではfalseになっています。

ofEndShape(...)

void ofEndShape(bool bClose)

形状の定義を終了して、スクリーンに描画することを知らせます。'bClose'引数をtrueに設定している場合は、自動的に形状は閉じられます。'bCLose'は初期設定であるfalseに設定されています。この命令は必ず実行しないと形状が現れません。

ofNoFill()

void ofNoFill()

形状を外枠のみ現在の描画色で描画します。

ofFill()

void ofFill()

形状を現在の描画色で塗り潰して描画します。

ofSetColor(...)

void ofSetColor(int r, int g, int b)

描画色を、r,g,b それぞれ0-255の範囲で設定します。例えば、赤色(0xff0000)はこのようになります: ofSetColor(255,0,0)

ofSetColor(...)

void ofSetColor(int r, int g, int b, int a)

描画色をr,g,b,aのそれぞれ0-255の範囲で設定します。アルファ(透過)を使うには先にアルファブレンディングを有効にしておく必要があり、正しいzオーダーで描画しなくてはなりません(先に描画されたものが、後ろ側になります)。 透明度のある赤い三角形を描画する例:

ofEnableAlphaBlending();    // アルファブレンディングを有効にします
ofSetColor(255,0,0,127);    // 赤色、半透明
ofRect(20,20,100,100);
ofDisableAlphaBlending();   // これ以降必要がなくなれば、ブレンディングを無効に戻します

ofSetColor(...)

void ofSetColor(int hexColor)

r、g、bを16進数を使って描画色を設定します。16進数は色を表現するのに便利な方法です。いくつかの例を示します:

ofSetColor(0xffffff);  // 白  (255,255,255)
ofSetColor(0x000000);  // 黒  (0,0,0);
ofSetColor(0x00ff00);  // 緑  (0,255,0);

ofEnableAlphaBlending()

void ofEnableAlphaBlending()

アルファ合成を有効にします。処理速度を考慮して、初期状態では無効になっています。単純にOpenGLの合成命令をラップしており、通常の合成モードを有効化します。

ofDisableAlphaBlending()

void ofDisableAlphaBlending()

アルファ合成を無効にします。

ofEnableSmoothing()

void ofEnableSmoothing()

スムージングを有効にします。現在のところ線の描画にのみ効果があります。塗りつぶされた形状を描き、輪郭のスムージングを有効にして、塗りつぶした形状を平滑化して描くことができます。

ofDisableSmoothing()

void ofDisableSmoothing()

スムージングを無効にします。現在のところ線の描画にのみ効果があります。塗りつぶされた形状を描き、輪郭のスムージングを有効にして、塗りつぶした形状を平滑化して描くことができます。

ofDrawBitmapString(...)

void ofDrawBitmapString(string str, float x, float y)

スクリーン上の点(x,y)の位置に、ビットマップで文字列を描画します。例えばこのようにして画面にテキストを書くことができます:

ofDrawBitmapString("hi!!", 100,100);

複数行の文字列にすることもできます。

ofDrawBitmapString("a test
of multiline
text", 100,100);

動的に生成された文字列も扱うことができます。例えば、フレームレートを表示するには:

string fpsStr = "frame rate: "+ofToString(ofGetFrameRate(), 2);
ofDrawBitmapString(fpsStr, 100,100);

ofDrawBitMapStringはglDrawPixelsを使うglut関数をラップしていることに注意してください。いくつかのグラフィックカードではglDrawPixelsは遅い(もしくは、大変遅い)ということに気づくでしょう。そのような場合適切な選択肢として、ofTrueTypeFontで、アンチエイリアスされない、小さいタイプフェイスを使うことで改善できるかもしれません。

ofRotate(...)

void ofRotate(float degrees, float vecX, float vecY, float vecZ)

ofRotateはベクトル(vecX,vecY,vecZ)に対して"degree"度の回転を行います。 "degrees"は回転を角度で設定します。vecX、vecY、vecZは、x、y、zそれぞれのベクトルの座標を指定します。
ofRotateの呼び出しよりも後ではすべてのグラフィックが回転して描画されます。元の回転していない座標状態を保存しておいて元に戻すには、ofPushMatrixとofPopMatrixを使用します。

ofRotateX(...)

void ofRotateX(float degrees)

ofRotateXは、ベクトル(1,0,0)で表現される座標系のX軸に対して"degrees"度の回転を行います。 "degrees"は度単位の回転角度を指定します。

ofRotateY(...)

void ofRotateY(float degrees)

ofRotateYは、ベクトル(0,1,0)で表現される座標系のY軸に対して"degrees"度の回転を行います。 "degrees"は度単位の回転角度を指定します。

ofRotateZ(...)

void ofRotateZ(float degrees)

ofRotateZは、ベクトル(0,0,1)で表現される座標系のZ軸に対して"degrees"度の回転を行います。 "degrees"は度単位の回転角度を指定します。

ofPushStyle()

void ofPushStyle()

ofPushStyleが呼び出されると、現在のofGraphics設定の現在のスタイル設定が保存されます。ofPushStyleとofPopStyleを使うことで、グラフィックのより正確な制御が行えます。 ある要素に当てはまるスタイルはすべてofStyleクラスを使用してコントロールされます。 ofStyleを参照してください。 次の例では赤い塗りつぶしは楕円にのみ適用されます。

void testApp::draw(){
    ofCircle(10,10,5);
    ofPushStyle();
    ofFill();
    ofsetColor(255,0,0);
    ofEllipse(30,10,40,40);
    ofPopStyle();
}    

ofPopStyle()

void ofPopStyle()

ofPopStyle()は以前のスタイルの設定を復元します。この命令はofPushStyleよりも後に呼び出される必要があります。詳細はofPushStyleを参照してください。

ofSetStyle(...)

void ofSetStyle(ofStyle style)

ofGraphicsの現在のスタイルを設定するために、ofSetStyleを使用します。スタイル設定のパラメーターは、ofColor、ofFill、polyModeおよび他のグラフィックスタイルの情報が含まれています。詳細については、ofStyleを参照してください。

ofGetStyle()

ofStyle ofGetStyle()

ofSetLineWidth(...)

void ofSetLineWidth(float lineWidth)

これより後で呼び出されるofLinesの、線の幅を設定します。

ofPushMatrix()

void ofPushMatrix()

ofPushMatrixは現在の座標系を保存することで、グラフィックオブジェクトを移動して開発できるようにします。ofPopMatrixはこの命令よりも後で呼び出される必要があります。次の例は正方形の回転のみをしています。

void testApp::draw(){
    ofCircle(10, 10, 5);
    ofPushMatrix();
    ofRotateX(90);
    ofRect(10,10,40,40);
    ofPopMatrix()
}

ofPopMatrix()

void ofPopMatrix()

ofPopMatrix()は以前の座標系を復元します。詳細についてはofPushMatrixを参照してください。

ofTranslate(...)

void ofTranslate(float x, float y, float z)

ofTranslateは座標系の(x、y、z)ベクトルによる変換を行います。 ofTranslateの呼び出しは、グラフィックの位置を変更します。 ofPushMatrixとofPopMatrixを使って変換前の座標系を保存して、復元します。

ofScale(...)

void ofScale(float xAmnt, float yAmnt, float zAmnt)

ofScaleはx、y、およびz軸に沿って均一ではない拡大縮小を行います。 3つのパラメータxAmnt、yAmntとzAmntは、3つの軸それぞれに沿って拡大縮小したい係数を示します。 例:

void testApp::draw(){
    ofScale(0.5,1,1);
    ofRect(10,10,40,40);    
}

これで四角形の幅は20pxになりました!

ofSetCurrentRenderer(...)

void ofSetCurrentRenderer(ofPtr< ofBaseRenderer > renderer)

ofGetCurrentRenderer()

ofPtr ofGetCurrentRenderer()

ofGetGLRenderer()

ofPtr ofGetGLRenderer()

ofBeginSaveScreenAsPDF(...)

void ofBeginSaveScreenAsPDF(string filename, bool bMultipage=false, bool b3D=false, ofRectangle viewport=ofRectangle(0, 0, 0, 0))

ofEndSaveScreenAsPDF()

void ofEndSaveScreenAsPDF()

ofPushView()

void ofPushView()

ofPopView()

void ofPopView()

ofViewport(...)

void ofViewport(ofRectangle viewport)

ofViewport(...)

void ofViewport(float x=0, float y=0, float width=0, float height=0, bool invertY=true)

ofSetupScreenPerspective(...)

void ofSetupScreenPerspective(float width=0, float height=0, ofOrientation orientation=OF_ORIENTATION_UNKNOWN, bool vFlip=true, float fov=60, float nearDist=0, float farDist=0)

ofSetupScreenOrtho(...)

void ofSetupScreenOrtho(float width=0, float height=0, ofOrientation orientation=OF_ORIENTATION_UNKNOWN, bool vFlip=true, float nearDist=-1, float farDist=1)

ofGetCurrentViewport()

ofRectangle ofGetCurrentViewport()

ofGetViewportWidth()

int ofGetViewportWidth()

ofGetViewportHeight()

int ofGetViewportHeight()

ofOrientationToDegrees(...)

int ofOrientationToDegrees(ofOrientation orientation)

ofSetCoordHandedness(...)

void ofSetCoordHandedness(ofHandednessType handedness)

ofGetCoordHandedness()

ofHandednessType ofGetCoordHandedness()

ofTranslate(...)

void ofTranslate(const ofPoint &p)

ofRotate(...)

void ofRotate(float degrees)

ofSetupScreen()

void ofSetupScreen()

ofSetCurveResolution(...)

void ofSetCurveResolution(int res)

ofSetSphereResolution(...)

void ofSetSphereResolution(int res)

ofGetFill()

ofFillFlag ofGetFill()

ofSetColor(...)

void ofSetColor(const ofColor &color)

ofSetColor(...)

void ofSetColor(const ofColor &color, int _a)

ofSetHexColor(...)

void ofSetHexColor(int hexColor)

ofEnableBlendMode(...)

void ofEnableBlendMode(ofBlendMode blendMode)

ofDisableBlendMode()

void ofDisableBlendMode()

ofEnablePointSprites()

void ofEnablePointSprites()

ofDisablePointSprites()

void ofDisablePointSprites()

ofSetPolyMode(...)

void ofSetPolyMode(ofPolyWindingMode mode)

ofSetRectMode(...)

void ofSetRectMode(ofRectMode mode)

ofBackground(...)

void ofBackground(int r, int g, int b, int a=255)

ofBackground(...)

void ofBackground(int brightness, int alpha=255)

ofBackground(...)

void ofBackground(const ofColor &c)

ofBackgroundHex(...)

void ofBackgroundHex(int hexColor, int alpha=255)

ofSetBackgroundColor(...)

void ofSetBackgroundColor(int r, int g, int b, int a=255)

ofSetBackgroundColor(...)

void ofSetBackgroundColor(int brightness, int alpha=255)

ofSetBackgroundColor(...)

void ofSetBackgroundColor(const ofColor &c)

ofSetBackgroundColorHex(...)

void ofSetBackgroundColorHex(int hexColor, int alpha=255)

ofClear(...)

void ofClear(float r, float g, float b, float a=0)

ofClear(...)

void ofClear(float brightness, float a=0)

ofClearAlpha()

void ofClearAlpha()

ofTriangle(...)

void ofTriangle(float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3)

ofTriangle(...)

void ofTriangle(const ofPoint &p1, const ofPoint &p2, const ofPoint &p3)

ofCircle(...)

void ofCircle(float x, float y, float z, float radius)

ofCircle(...)

void ofCircle(const ofPoint &p, float radius)

ofEllipse(...)

void ofEllipse(float x, float y, float z, float width, float height)

ofEllipse(...)

void ofEllipse(const ofPoint &p, float width, float height)

ofLine(...)

void ofLine(float x1, float y1, float z1, float x2, float y2, float z2)

ofLine(...)

void ofLine(const ofPoint &p1, const ofPoint &p2)

ofRect(...)

void ofRect(const ofRectangle &r)

ofRect(...)

void ofRect(const ofPoint &p, float w, float h)

ofRect(...)

void ofRect(float x, float y, float z, float w, float h)

ofCurve(...)

void ofCurve(float x0, float y0, float z0, float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3)

ofBezier(...)

void ofBezier(float x0, float y0, float z0, float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3)

ofVertex(...)

void ofVertex(float x, float y, float z)

ofVertex(...)

void ofVertex(ofPoint &p)

ofVertexes(...)

void ofVertexes(const vector< ofPoint > &polyPoints)

ofCurveVertex(...)

void ofCurveVertex(ofPoint &p)

ofCurveVertexes(...)

void ofCurveVertexes(const vector< ofPoint > &curvePoints)

ofBezierVertex(...)

void ofBezierVertex(const ofPoint &p1, const ofPoint &p2, const ofPoint &p3)

ofBezierVertex(...)

void ofBezierVertex(float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3)

ofSphere(...)

void ofSphere(float x, float y, float z, float radius)

ofSphere(...)

void ofSphere(float x, float y, float radius)

ofSphere(...)

void ofSphere(const ofPoint &position, float radius)

ofSphere(...)

void ofSphere(float radius)

ofBox(...)

void ofBox(float x, float y, float z, float size)

ofBox(...)

void ofBox(float x, float y, float size)

ofBox(...)

void ofBox(const ofPoint &position, float size)

ofBox(...)

void ofBox(float size)

ofSetDrawBitmapMode(...)

void ofSetDrawBitmapMode(ofDrawBitmapMode mode)