我正在使用Processing 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();
我什么都没看到。只是图表。那我错过了什么?
答案 0 :(得分: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();
}
沿途可能还有别的东西。关心分享更多信息?
答案 1 :(得分: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