ワードクラウドを自作する②

ワードクラウドを自作する② ワードクラウドを自作する② 前回 C#でワードクラウドを自作しました。しかし、文字が重なったり、はみ出してしまったりと課題は色々とありました。なので今回は前回出た課題を解決し、より見やすいワードクラウドに改善したいと思います。 前回の画像がこちら 問題は描画する左上の座標のみしか指定していないこと、描画した場所を記録していないため重なる描画をしてしまうことです。そのため。描画する文字が縦横どのくらいの長さになるのか計測することと、描画場所を記録できる仕組みを作る必要があります。 描画する文字列の長さは MeasureStringメソッド を使用し縦横の長さを取得することができるため、このメソッドを利用したいと思います。また、描画場所については2次元配列で管理する方針で進めたいと思います。 なお MeasureStringメソッド を使用するためには、一度Graphicsに描画するため、計測用のGraphicsを用意します。 文字がはみ出さないようにする まずは、「文字がはみ出す問題」を解決したいと思います。 文字がはみ出してしまう原因は、描画する文字列のx座標とy座標の終了値が生成する画像の右のx座標と下のy座標を超えてしまっていることです。 なので描画する前に、描画予定の文字列の長さを取得し右上と左下の座標が描画範囲に収まっていることを確認します。そのうえで描画可能であれば文字列の描画を行います。 コードで実現すると以下のようになります。(長さを取得するために描画するBitmap(demoG)を用意しています。) var size2 = demoG.MeasureString(str, fontData); if(height <= size2.Height+y ) { return false; // 描画できないのでfalseを返す } else if(width <=...