図形を描画する(画像処理)

GUIを作っている時、画像を生成したり表示したりしたいときがあります
ペイントソフトが代表例として挙げられますが、画像を描くのが主目的でなくてもあると便利な場合はあります
今「あります」とタイプしながら何も思い浮かばなかったので自分の使用例をあげてみます


これは以前紹介したエニグマ暗号機のプラグボードと呼ばれる、要は1〜6の数字を入れ替えるものです
これを文字だけでやろうとすると「1→2、2→6」などと書くしかなく、どれがどうつながっているか想像しにくいです
手間はかかりますがロマンです


これはグラフ描画ソフトです
グラフといっても折れ線とか棒の数値を表すグラフではなく物の関連とか経路とかを視覚化するもので、このソフトでは彩色問題(繋がってる点同士が同じ色にならないよう最低限の色数で着色する問題)が解けます、といっても力技ですが


これは僕の自信作で7セグメントディスプレイを描画するAPIです
数字を書くソフトではなく、ストップウォッチとか電卓とかで見栄えがいいのを作りたい時に呼び出す関数群(という意味でカッコつけてAPIって言ってみたけど合ってるかわからない)です
作ってみたところわりと使いやすくて細かい設定(各種色、大きさ、太さ、傾きの有無、オリジナル文字作成)ができるようになったので、
javadoc(説明書)が書けたら公開しようと思います
本当は手前味噌をネットにぶちまけるなんて真似したくないんですが、「java 7セグメント」とかでググってもソースも画像も見つからなかったので、あったらいいのになと思っている同志が万が一いた時のために、です


ざっと見ただけで、曲線、(角丸)四角形、楕円、多角形など基本的な図形が色、太さ自由自在に描画できているのがわかると思います
プログラムで図形…と想像すると死ぬほど手間がかかりそうな予感がするものですがさすがJavaさんです
四角形一つ書くだけならほんの数行、初見でもコピペで数分で出来ます
すごくロマンなのでやってみてください

各種図形描画や座標変換など多数のメソッドを簡単に紹介したいとも思ったのですが、役不足(誤用)です

Java Drive - Java2Dによる画像処理

ここが驚くほど丁寧で行き渡っていて著者の方に惚れそうになります、というか惚れました
あまりにすぐれたサイトですしすでにこの方のサイトに行ったことがある人がほとんどではないでしょうか

というわけで今回具体的なテクニックはありませんが上記の大先生のところへ行けば万事解決ですので、では