2012-04-17 7 views
2

Processing APIを使用してJavaの3Dシーンで作業しています。これは力に配慮したグラフレイアウトアルゴリズムです(それほど重要ではありません)。私はすべてのグラフの描画を完了しました - ノード、エッジ、レイアウトなどが良く見えます。グラフ上の各ノードにはラベルが付いていますので、ラベルをノードの横にテキストとして表示できるようにしたいと考えています。私はtext()関数を使って作業を試みましたが、これまでのところ私のコードがうまく動作しないようです。私は場面のどこにもテキストを見ない。処理中に3Dテキストを描画する

私のコードは次のようになります。

pushMatrix(); 
translate(width/2, height/2, 0); // put 0,0,0 at the center of the screen 
text("foo!", 20, 20, 20); 
popMatrix(); 

そして、私は何も表示されません。グラフだけ。それで私は何が欠けているのですか?

答えて

0

表示されたコードのほんの少しで問題はありません。あなたはhereを実行している修正版を見ることができます:

void setup() { 
    size(400,400,P3D);  
    textSize(20); 
} 

void draw() { 
    background(0); 
    translate(width * .5, height*.5,0); 
    rotateY(map(mouseX,0,width,-PI,PI)); 
    rotateX(map(mouseY,0,height,-PI,PI)); 
    pushMatrix(); 
    text("foo!", -20, 0, 20); 
    popMatrix(); 
} 

道に沿って何か他のものがあるかもしれません。より多くの情報を共有するためのケア?

+0

それは私がのcreateFont()メソッドを使用して、フォントを作成しようと思いますが判明しますそれは存在しませんでした - それは静かに失敗していただけで、テキストを描画していないと思います。ありがとう! – Peter

0

塗りつぶし色はテキストの色を制御し、デフォルトは白です。したがって、白い背景に白いテキストをペイントしている場合、それは表示されません。塗りつぶし(0)を追加します。テキストを描画する前に

また、テキストを画面に送信した後に描画される図形は、テキストを上書きすることがあります。描画の最後の「隠された」ステートメントは、画面をペイントすることです。ここ

は上部にラベルの行に(2Dにおける)縦線の一連の図の例は次のとおり

int startX; 

    void setup() { 
     size(400,400); 
     textSize(12); 
     startX = width/10; 
    } 

    void draw() { 
     background(255); 
     int curX = startX; 
     fill(0);   // Set the text color 
     while (curX < width) 
     { 
     line(curX, 30, curX, height-10); 
     text(curX, curX-(curX/20), 20); 
     curX += width/10; 
     } 
    } // end draw 
関連する問題