第四のプロジェクトについて【実践的Macintoshプログラミング解説】

印刷用表示 |テキストサイズ 小 |中 |大 |

CoreData版 Repeating Motif Generator の開発 Repeating Motif Wonderland CoreData 実践的 Macintosh プログラミング解説

LinkIconホーム

更新日 2009-05-24

第四のプロジェクトについて

 第三のプロジェクトでは機能追加は控え、アプリケーションとしての基本的な部分を強化しました。第四のプロジェクトでは発振器の数を増やしてリサージュ図形を拡張し、原図を作成できる様にします。発振器の数が増える事で、リサージュ図形とは比べ物にならない程、多種多様な図形を作り出す事ができる様になります。

 完成したアプリケーションは下の図の様になります。

4thAppScreenShot.png

第四のプロジェクトでどこまで作るのか

 第四のプロジェクトでは以下の事を実現します。

1.原図を作成できる様にするために、原図とミキサーのモデルを追加する
2.ビューを原図とミキサーに対応させる
3.マーカ表示機能を追加する
4.カット&ペーストに対応する
5.ドラッグアウトで爆発アニメーションと共に消去する
6.テーブルビュー、データソース、モデルクラスの汎用性を高める
7.原図のパラメータをランダムに決める
8.発振器の波形をドラッグしてパラメータを設定できる様にする

原図を作成できる様にするために、原図とミキサーのモデルを追加する

  •  リサージュ図形の場合、X軸・Y軸の発振器はそれぞれ一つずつでした。この発振器を三つずつに増やして様々な図形を作り出せる様にしたものを繰返し紋様の原図とします。三つの発振器出力を合成するためにミキサーが必要になるので、モデルを追加します。そしてミキサーの出力を合成して図形を作り出す原図のモデルを追加します。

ビューを原図とミキサーに対応させる

  •  追加したモデルを画面に表示するために、ビューを変更します。BezierPathViewが充分な機能を備えているので、BezierPathViewのサブクラスを作って対応するのではなく、BezierPathViewの設定方法を見直して対応する事にしました。

マーカ表示機能を追加する

  •  発振器の出力を組み合わせて原図を作っている事が目で見てわかる様にするために、マーカ表示機能を追加する事にしました。BezierPathViewを拡張します。

カット&ペーストに対応する

  •  第三のプロジェクトでカット&ペーストに対応しました。リサージュ図形を原図に拡張したので、カット&ペーストを実現する手段もそれに合わせる必要があります。単なる拡張ではなく、より洗練した形で実現する様にしました。

ドラッグアウトで爆発アニメーションと共に消去する

  •  テーブルビューのアイテムをドラッグして、ドロップを受け入れない場所でドロップすると、爆発アニメーションと共にアイテムを消去する機能を追加しました。Dockと同じGUIです。

テーブルビュー、データソース、モデルクラスの汎用性を高める

  •  プロトコルを定義する事でテーブルビュー、データソース、モデルクラスの汎用性を高める事ができました。ソースの変更なしで異なるモデルクラスに対応でき、カット&ペースト、ドラッグ&ドロップができます。

原図のパラメータをランダムに決める

  •  発振器の数が増えた事で設定すべきパラメータの数が一気に増えました。全て手動で設定していたのでは面倒なので、乱数で一気に決める機能を追加します。

発振器の波形をドラッグしてパラメータを設定できる様にする

  •  スライダーで発振器のパラメータを決めるよりも、発振器出力の波形をドラッグして変えた方が直感的なインターフェイスでわかりやすいので、変更します。