第四のプロジェクトでどこまで作るのか
1.原図を作成できる様にするために、原図とミキサーのモデルを追加する
2.ビューを原図とミキサーに対応させる
3.マーカ表示機能を追加する
4.カット&ペーストに対応する
5.ドラッグアウトで爆発アニメーションと共に消去する
6.テーブルビュー、データソース、モデルクラスの汎用性を高める
7.原図のパラメータをランダムに決める
8.発振器の波形をドラッグしてパラメータを設定できる様にする
原図を作成できる様にするために、原図とミキサーのモデルを追加する
- リサージュ図形の場合、X軸・Y軸の発振器はそれぞれ一つずつでした。この発振器を三つずつに増やして様々な図形を作り出せる様にしたものを繰返し紋様の原図とします。三つの発振器出力を合成するためにミキサーが必要になるので、モデルを追加します。そしてミキサーの出力を合成して図形を作り出す原図のモデルを追加します。
ビューを原図とミキサーに対応させる
- 追加したモデルを画面に表示するために、ビューを変更します。BezierPathViewが充分な機能を備えているので、BezierPathViewのサブクラスを作って対応するのではなく、BezierPathViewの設定方法を見直して対応する事にしました。
マーカ表示機能を追加する
- 発振器の出力を組み合わせて原図を作っている事が目で見てわかる様にするために、マーカ表示機能を追加する事にしました。BezierPathViewを拡張します。
カット&ペーストに対応する
- 第三のプロジェクトでカット&ペーストに対応しました。リサージュ図形を原図に拡張したので、カット&ペーストを実現する手段もそれに合わせる必要があります。単なる拡張ではなく、より洗練した形で実現する様にしました。
ドラッグアウトで爆発アニメーションと共に消去する
- テーブルビューのアイテムをドラッグして、ドロップを受け入れない場所でドロップすると、爆発アニメーションと共にアイテムを消去する機能を追加しました。Dockと同じGUIです。
テーブルビュー、データソース、モデルクラスの汎用性を高める
- プロトコルを定義する事でテーブルビュー、データソース、モデルクラスの汎用性を高める事ができました。ソースの変更なしで異なるモデルクラスに対応でき、カット&ペースト、ドラッグ&ドロップができます。
原図のパラメータをランダムに決める
- 発振器の数が増えた事で設定すべきパラメータの数が一気に増えました。全て手動で設定していたのでは面倒なので、乱数で一気に決める機能を追加します。
発振器の波形をドラッグしてパラメータを設定できる様にする
- スライダーで発振器のパラメータを決めるよりも、発振器出力の波形をドラッグして変えた方が直感的なインターフェイスでわかりやすいので、変更します。

ホーム
前へ