2013-10-27 4 views
1

Я сопоставляю каждое слово в данной фразе с любыми соответствующими словами, найденными в предоставленном образце текста. Я сопоставляю слова из моей данной фразы с образцом текста, рисуя кривую Безье в каждом экземпляре. Моя проблема заключается в следующем: после того, как я поместил образец текста в массив, я не знаю, как хорошо сделать текст снова, не получая странного промежутка между каждым словом. В настоящее время я рисую каждое слово из массива, но это не очень эффективно. Возможно, мой весь подход неверен ... любые предложения приветствуются. Это для меня все ново. Благодаря!рисование строк из массива в обработке

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; 
    } 
} 
+0

Какие графические API вы используете? –

+1

На каком языке это? Является ли эта Java? Я похожа на Java, за исключением этой строки: 'background (#FFFFFF);' – jrd1

+1

"Обработка" - это язык. Мне это нравится, но у меня есть довольно запутанное имя ... – kevinsa5

ответ

2

Попробуйте заменить

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

в нижней части вашего для петли с textWidth

x = x + textWidth(wordSet[i] + " "); 
Смежные вопросы