1

HTML の Canvas タグを使用して、ランダムに生成されたワード クラウドを作成しています。定義された領域で、単語に収まる十分な空白がある場所を計算するための最良の (そして最も効率的な) 方法を探しています。私が今思いつく唯一の方法は、フリー スペースのブロックを格納するフリー リストを作成し、新しい画像がページに配置されるときにそれを調整することです。

ここにジェネレーターの例があります: http://pathrazor.com/wordcloud/。ただし、この例はまだ単語をランダムにローテーションしていないため、私が求めていることの複雑さが増します。衝突検出は、空き領域の問題に対する解決策の一部ではない場合、後で追加されます。

誰か面白いアイデアを持っているか、以前にこれをやったことがありますか? どんな入力でも素晴らしいでしょう。

4

1 に答える 1

1

次のようなアルゴリズムを提案します。

  • 空白の長方形があるとします。
  • その四角形に単語をランダムに (または疑似ランダムに、または好きなように) 配置します。
  • 単語が独自の小さな長方形で囲まれていると想像してください。より大きなコンテナーの境界に到達するまで、その長方形の線を延長します。
  • 残りの空き領域は、重複する 4 つの長方形に分割されます。単語の前後に 2 つの垂直方向の長方形があり、その上下に 2 つの水平方向の長方形があります。
  • それらの長方形をメモリに保存します。
  • 次に配置する単語は、これらの長方形の 1 つまたは 2 つに重なります。その場合は、さらに分割して、プロセスを繰り返します。

SE のゲーム開発サイトでこの質問が役立つ場合もあります。

于 2012-10-22T15:04:49.893 に答える