如何确保字符串不会在java处理中彼此重叠?
我有一个问题,我需要让我从外部文件“不”相互重叠的话。我有超过50个单词,它们在运行时具有随机文本大小和位置,但它们重叠。如何确保字符串不会在java处理中彼此重叠?
如何让他们“不”相互重叠?结果可能看起来像一个词云。
,如果你认为我的代码,将有助于他们在这里
String [] words;
int index = 0;
void setup()
{
size (500,500);
background (255);
String [] lines = loadStrings ("alice_just_text.txt");
String entireplay = join(lines, " "); //splits it by line
words = splitTokens (entireplay, ",.?!:-;:()03 "); //splits it by word
for (int i = 0; i < 50; i++) {
float x = random(width);
float y = random(height);
int index = int(random(words.length));
textSize (random(60)); //random font size
fill (0);
textAlign (CENTER);
text (words[index], x, y, width/2, height/2);
println(words[index]);
index++ ;
}
}
堆栈溢出是不是真的适用于一般的“我怎么做这个”式的问题。如果你发布了更具体的“我试过X,预期Y,但是改为Z”类型的问题,你会有更好的运气。但我会尽力在一般意义上提供帮助:
您需要break your problem down into smaller pieces,然后逐个处理这些作品。
例如,您可以隔离您的问题,以确保矩形不会重叠,从而可以进一步细分。有很多方法可以做到这一点:
您可以使用网格布局您的矩形。找出一行文字占用了多少个正方形,然后在网格中找到该单词适合的位置。例如,您可以使用类似布尔值的二维数组。
或者您可以生成一个随机的位置,然后检查是否有一个矩形。如果是这样,请选择一个新的随机位置,直到找到一个清晰的位置。
在任何情况下,您可能需要使用collision detection(矩形或矩形矩形)来确定矩形是否重叠。
从小开始。创建一个仅在屏幕上显示两个矩形的小示例程序。首先对它们的位置进行硬编码,但是如果它们碰撞,则使它们变红。从那里开始工作。使它成为可以使用鼠标添加矩形,但只有在没有重叠的情况下才允许用户添加矩形。然后添加随机位置选择。如果您遇到特定的问题,请发帖MCVE,我们会从那里开始。祝你好运。
谢谢你的凯文... –
@KenWhite谢谢!我不知道如何编辑一篇文章,因为我是stockoverflow中的新成员......尽管谢谢你:)我现在将编辑它并删除我不需要的评论 –
你会发现一个[edit]链接权利在问题左下角的标签下方。 :-) –
@KenWhite哦,我的!找到了!非常感谢! –