2

我正在使用处理 API 处理 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

填充颜​​色控制文本颜色,默认为白色。因此,如果您在白色背景上绘制白色文本,它将不会显示。添加填充(0);在绘制文本之前。

另请记住,将文本发送到屏幕后绘制的形状可能会覆盖您的文本。draw 中的最后一个“隐藏”语句是绘制屏幕。

这是一个绘制一系列垂直线(二维)的示例,顶部有一排标签:

   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 回答
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 回答