文本不会显示在Processing中

时间:2017-02-25 21:02:13

标签: processing

我在sketchpad.cc上,而draw方法不会输出任何文字。

int i = 0;
int count = 0;
int x1 = 0; int y1 = 0; int x2 = 0; int y2 = 0; int x3 = 0; int y3 = 0; 
void setup() {  // this is run once.   

    // set the background color
    background(255);


    // canvas size (Integers only, please.)
    size(300, 300); 

    // smooth edges
    smooth();

    // limit the number of frames per second
    frameRate(30);

    strokeWeight(2); 

} 

void mouseClicked() {
  if(count == 0) {
    x1 = mouseX;
    y1 = mouseY;
    count++;
  }
  if(count == 1) {
    x2 = mouseX;
    y2 = mouseY;
    line(x1, y1, x2, y2);
    count++;
  }
  if(count == 2) {
    x3 = mouseX;
    y3 = mouseY;
    count = 0;
    line (x1, y1, x2, y2);
    line (x2, y2, x3, y3);
    line (x3, y3, x1, y1);
  }

}

void draw() {
line (40,50,40,90);
text("derp",10,50);
text(x1+","+y1+","+x2+","+y2+","+x3+","+y3, 10, 20);
}

该程序应该绘制三角形。我的绘制方法会像它想象的那样绘制线条,但它不会执行文本。让我感到沮丧的是,我之前使用过text()而没有任何问题。我回去加载了我之前用text()创建的另一个程序,它运行得很好!打印文本n。但我目前的计划不会这样做。

我很失落:(

1 个答案:

答案 0 :(得分:1)

请在发布前将问题缩小到MCVE。例如,这个小得多的程序显示出与完整草图相同的问题:

void setup() {  
  size(300, 300); 
  background(255);
} 

void draw() {
  text("derp", 10, 50);
}

如果您运行此程序,即使我们正在调用text()函数,您也只会看到白色背景。为了调试这个,我首先取出对background()的调用并运行它。

void setup() {  
  size(300, 300); 
} 

void draw() {
  text("derp", 10, 50);
}

如果您运行该程序,您将看到文本被绘制到屏幕上,并且它以白色绘制。那是因为默认的绘制颜色是白色。所以第一个程序只是在白色背景上绘制白色文本,这就是为什么你看不到它。

要解决此问题,请使用fill()功能更改背景颜色或更改文字颜色。

另一条建议:你需要在较小的块中工作。而不是编写整个程序,然后想知道为什么它不起作用,你需要一次只能运行一个小块。像本文中的示例一样处理块,并且只有在一切正常工作时才添加少量代码。这将帮助您捕获像这样的错误。推荐阅读:How to Program