在处理中从数组中绘制字符串

时间:2013-10-27 10:08:32

标签: arrays processing

我将给定短语中的每个单词与提供的示例文本中找到的任何相应单词进行匹配。我通过在每个实例绘制贝塞尔曲线来匹配我给定短语中的单词和示例文本。我的问题如下:在我将示例文本放入数组之后,我不知道再次绘制文本的好方法,而不会在每个单词之间产生奇怪的间距。我目前正在从数组中绘制每个单词,但事实并非如此。也许我的整个方法都是错误的...任何建议都非常感谢。这对我来说都是新的。谢谢!

String sampleText = "this is where my sample text goes";

String phrasePart1 = "this";
String phrasePart2 = "is";
String phrasePart3 = "text";

float x = 30;
float y = 70;

size(1000, 800);
background(#FFFFFF);
smooth();

String[] wordSet = split(sampleText, " ");

fill(0);

text(phrasePart1, width/2-30, 30);
text(phrasePart2, width/2+10, 30);
text(phrasePart3, width/2+30, 30);

for (int i = 0; i < wordSet.length; i++) {

  textSize(6);
  text(wordSet[i], x, y);


  if (wordSet[i].equals(phrasePart1)) {
    noFill();
    stroke(153);
    smooth();
    bezier(width/2-35, 27, 30, 30, 40, random(30, 200), x+5, y-9);
  }

    if (wordSet[i].equals(phrasePart2)) {
    noFill();
    stroke(153);
    smooth();
    bezier(width/2+13, 33, 670, 30, 680, random(30, 200), x+5, y-9);
    }

  if (wordSet[i].equals(phrasePart3)) {
    noFill();
    stroke(153);
    smooth();
    bezier(width/2+50, 27, 670, 30, 680, random(30, 200), x+5, y-9);
  }

  x = x + wordSet[i].length()*3+4;


  if (x > width-50) {
    x = 30;
    y = y + 12;
  }
}

1 个答案:

答案 0 :(得分:2)

尝试替换

x = x + wordSet[i].length()*3+4;

位于for textWidth

的for循环底部
x = x + textWidth(wordSet[i] + " " );