Morphic を特別なものにしている点について知りたいです。
3 に答える
Morphic は、限られた機能セットの再実装を単純に許可するNSView やその他のグラフィックスクラスよりもはるかに優れています。Morphic は非常に柔軟な UI 構築キットです。Morphic の背後にあるいくつかのデザイン アイデアは、この意図を明確に示しています。
- 2D 座標系の包括的な階層が含まれています。それらはデカルトまたは線形に制限されません。有用な非線形座標系には、極、対数、双曲線、および地理的 (地図のような) 投影法が含まれます。
- モーフ自体からの座標系の処理の分離。モーフは、描画するすべてのポイントをそれ自体でワールド座標に変換する必要はなく、優先座標系を選択するだけでよいはずです。その
#drawOn:
メソッドとそのサブモーフの位置は、独自の座標系で表現されます。 - サイズや解像度などの表示プロパティの完全な独立性。ピクセルという概念はありません。GUI はより高いレベルで考えられています。すべての GUI は、ピクセル解像度に依存しません。すべてのレンダリングはアンチエイリアスです。
- 座標系を分離すると、モーフの移動、ズーム、および回転が容易になります。
- すべての座標は浮動小数点数です。これは、大きな丸め誤差なしで完全に任意のスケールを許可するのに適しています。
- モーフ階層は形状の階層ではありません。モーフには、境界線や色の概念がありません。サブモーフの整列に関する一般的な概念はありません。特定のモーフは、それ自体にとって意味のある方法でこれらを実装できます。
- Morphic イベント処理は柔軟で、イベントを任意のオブジェクトに送信できます。そのオブジェクトは Morph をサブクラス化する必要はありません。
警告: Smalltalk のライブ動的環境は赤い丸薬です。静的で凍結された言語は、あなたにとって決して同じではありません;-)
簡単に言うと、Morphic は(現実世界と同じように)生きているオブジェクトを直接探索できる仮想世界です。UIを見たことがありますか...
- 「うわー、それは本当にクールだ!彼らはどうやってそれをしたの?」
- kvetch 「代わりに X をやればよかったのに!」
これらの考えは、他の環境では痛みやフラストレーションにつながりますが、Morphic ではそうではありません。
心を吹き飛ばしたい場合は、モルフィックの世界で神になりましょう。
Pharo 画像を起動し、背景 (実際には「世界」) をクリックして、世界のメニューを表示します。
メニューオプションの1つで「ハロー」を表示します(私のMacではShift-Alt-クリック):
「ピックアップ」ハロー (上部中央) をドラッグして、ワールド内のどこかにドロップします。
好きな場所で利用できるようになったメニュー項目をお楽しみください。
真剣に、それをクリックしてブラウザが開くのを見てください!!
ベンダーが 3 つのメニュー レベルの深さを隠しているという、常に使用するオプションがあったことはありませんか? これは役に立ちますか?これは、Morphic のようなライブ ダイレクト GUI 環境の威力を垣間見ることができます。
興味がある場合は、John Maloney と Randall Smith の論文「Morphic User Interface Construction Environment における Directness and Liveness 」をお読みください。