2

私はProcessingAPIを使用してJavaで3Dシーンに取り組んでいます。これは、力指向のグラフレイアウトアルゴリズムです(ただし、それほど重要ではありません)。すべてのグラフ描画が完了しました。ノード、エッジ、レイアウトなどは見栄えがします。ただし、グラフの各ノードにはラベルが付いているので、ノードの横にそのラベルをテキストとして表示できるようにしたいと思います。text()関数を使ってみましたが、今のところ私のコードはうまくいかないようです。シーンのどこにもテキストが表示されません。

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

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

そして、私は何も見えません。ただのグラフ。だから私は何が欠けていますか?

4

2 に答える 2

0

表示したほんの少しのコードですべてがうまくいきます。あなたはここで実行されている修正されたバージョンを見ることができます:

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();
}

途中で何か他のものがあるかもしれません。より多くの情報を共有したいですか?

于 2012-04-18T08:20:40.383 に答える
0

塗りつぶしの色はテキストの色を制御し、デフォルトは白です。したがって、白い背景に白いテキストをペイントしている場合、それは表示されません。fill(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
于 2014-02-22T20:40:16.923 に答える