我正在Java使用处理API处理一个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();
我什么也没看到。只有图表。我错过了什么?
您显示的一点点代码一切都很好。您可以在此处看到运行的修改版本:
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);。
还要记住,在将文本发送到屏幕后绘制的形状可能会覆盖文本。绘制中的最后一个“隐藏”语句是绘制屏幕。
下面是一个绘制一系列垂直线(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