エンタープライズ:特集 | 2003/09/22 21:29:00 更新 |
[C Magazine連載]プログラムのレシピ(第2回)
ドローツールを作る (1/6)
本連載では、さまざまなツール系アプリケーションの作り方を解説します。言語を学んだあと、いよいよアプリケーションを作ってみようという方には、とくに参考になると思います。今回は「ドローツール」を作ります。ドローツールは、矩形や楕円といった図形を組み合わせて図を作成するツールです。制作上の主なポイントは、図形管理用クラスの設計と、図形選択時の当たり判定です。
C MAGAZINE 2002年10月号より転載
身近なドローツールの例としては、Windowsなら「Microsoft PowerPoint」や「Adobe Illustrator」、UNIXなら「tgif」などがあります。フォントを作るためのツールなども一種のドローツールです。プログラミング関連では、UML(Unified Modeling Language)のダイアグラムを描くツールもドローツールの仲間ですね。 ところで「Microsoft PowerPoint」は、作図機能の部分がドローツールで、全体としてはプレゼンテーションツールです。プレゼンテーションツールのほとんどは、ドローツールの機能を内蔵しています。今回作成するドローツールも、次回はプレゼンテーションツールに発展させる予定です。
●図形管理用クラスの設計 ドローツールで扱う図形情報は、クラス(オブジェクト指向的なデータ構造)との相性がいいデータです。図形には矩形、楕円、ポリゴン、テキストなどの種類があって、それぞれまったく形状が違いますが、共通部分も多くあります。たとえば、図形を囲む四隅の座標や描画色といった情報は、どの図形にも必要なものです。こういった共通部分を、クラスの継承関係を使ってうまく表現してやることが、ドローツール作りの基本です。
●図形選択時の当たり判定 図形を選択するには、図形をクリックするのが一般的です。では画面をクリックしたときに、クリックしたのがどの図形なのかをどう判定したらいいのでしょうか。 たとえば、矩形ならば簡単です。クリックした座標が矩形の四隅の内側に入っているかどうかを調べればいいのです。では、楕円やポリゴンはどうでしょうか。これらは、四隅だけで内側か外側かを単純に判定できません。このように複雑な形状の内外を判定するには工夫が必要です。
●そのほかのポイント
・矩形 後ほど、これらの図形をまとめてグループにする機能(グループ化機能)をつけます。グループ化機能があれば、基本図形を組み合わせて複雑な形状を作ることもできます。 実際のドローツールの画面では、これらの図形はFig.2のように表示されます。ポリゴンについては、図形を閉じるかどうかを指定できるようにすれば、線を描くのにも使えます。
関連リンク |
[松浦健一郎(ひぐぺん工房),JAVA Developer]