イメージを歪めるアンドロイドアプリを開発しています。イメージを歪ませるためにOpenGL translateとscale関数を使用しています。イメージが歪めています。しかし、機能を実装することができません。誰もがOpenGLで取り消し機能を実装する方法を助けることができます。任意の提案やコードが役立つでしょう。 ありがとうございます。どのようにアンドロイドでOpenGLでアンドゥ機能を実装する方法
答えて
Ray Tayekが正しいです。コマンドパターンを使用します。つまり、ユーザーが実行するすべてのアクションに対して、そのアクション(コマンド)とそのアクションに関連するすべてのデータを「元に戻す」スタックにプッシュします。
簡単にするために、ペイントプログラムを見てみましょう。このプロセスはOpenGLアプリケーションに直接適用されます。ユーザは、x1、y1からx2、y2に線を引く。
command = DrawLine
data = x1, y1, x2, y2
あなたはおそらく、元に戻すデータのために、少なくとも2つのクラスを必要とするだろうが、彼らは小さく、容易に実現するだろう:コマンドは次のように表すことができます。ユーザーが元に戻したいときは、Undoスタックから一番上のオブジェクトをポップして見て、(コマンドの各タイプに固有の)関連する取り消しアクションを実行します。または、各コマンドオブジェクト自体に取り消しアクションを含めることもできます。次に、やり直しスタックの取り消しコマンドを押します。
これで十分です。 HTH
私は上記の私の答えを修正します。 3Dグラフィックスの場合、DwBには良いアプローチがあります。元に戻すデータの一部として変更されていないイメージを使用します。 – Frecklefoot
あなたの状況にはコマンドパターンが不十分だと思われます。これは、歪みがどのように適用されたかを知っていても、画像の歪みを逆にするのは簡単ではないという私の前提に基づいています。
歪みを適用する直前に画像をスタックにプッシュする必要があります。次に、取り消し実装は現在のイメージをスタック上のイメージに置き換えます。これにより、やり直しと元に戻すことの組み合わせに起因する潜在的に興味深い問題につながります。
これは、コマンドオブジェクトを簡単に元に戻すことができ、簡単に元に戻すことができない変更のイメージを格納するために最適化することができます。
- 1. Eclipse FormEditorにアンドゥ/リドゥ機能を実装する方法は?
- 2. アンドロイドのペイントでアンドゥ機能のビットマップを保存する方法は?
- 3. アンドロイドキャンバスでアンドゥ、リドゥ、イレースを実装する方法
- 4. アンドロイド描画アプリにアンドゥ/リドゥ機能を追加するには?
- 5. Facebookの "New Story"機能のような機能を実装する方法は?
- 6. リアルタイムのソフトシャドー - どのようにOpenGLで実装しますか?
- 7. アンドロイドでスクロールリスナーを実装する方法
- 8. アンドロイドでPBAPを実装する方法
- 9. アンドロイドで待機ローダーを実装する
- 10. どのようにJavaでの検索機能を実装する
- 11. ページ機能の実装方法YouTube /その他のサイトのような機能?
- 12. OpenGL/LWJGLでglReadPixelsはどのように機能しますか?
- 13. 実装方法「Eclipse Googleの「テキスト検索」のような機能をEclipseエディタで実装する」
- 14. ドキュメントベースのCocoaアプリケーションでエクスポート機能を実装するには、どのような方法がありますか?
- 15. jnotifyなどのリマインダ機能を実装する方法は?
- 16. 下記のようにアンドロイドで効果を実装する方法
- 17. OpenGLズームエクステントを実装する方法
- 18. PHPでSQLiteのガベージコレクション機能を実装する方法
- 19. anglejsでdom jqueryのクリック機能を実装する方法
- 20. コロナで同等の "NSUserDefaults"機能を実装する方法は?
- 21. numpyでこのアクティベーション機能を実装する方法は?
- 22. Androidアプリケーションで寄付の機能を実装する方法は?
- 23. アンドロイドでアニメーションの反応ポップアップのようなFacebookを実装する方法は?
- 24. SQL Serverの機能のようなmsacessマスクを実装する方法
- 25. SpotifyのようなiOSアプリのサイドバー機能を実装する方法
- 26. iPhone:AndroidのAlertDialogのような機能を実装する方法は?
- 27. glslのテクスチャのようなテクスチャサンプリング機能を実装する方法
- 28. ブラウザのような前後の機能を実装する方法
- 29. どのように友人を実装する関係とアンドロイド
- 30. iPhoneでポーズ機能とダウンロード機能を実装する方法は?
これはOpenGLとは関係ありません。 OpenGLはあなたが描画するよう指示するだけです。任意の元に戻す機能は、それが以前と同じように描画するように指示するものを変更することです。 –
@NicolBolas実際には私は指のタッチで画像を歪めています。画像が縮小または膨らみます。質問は、私は何を保存し、どのようにビューに反映させるべきかです。 –
私はあなたがそれぞれのタッチ開始時に現在の画像を保存すべきだと思います。その後、取り消しが完了したら、現在のイメージをドロップし、キュー内の最後のイメージに置き換えます。 openglを使っていくつかの操作を逆にすることもできますが、ここでそのような機能を使うべきではないと思います。オリジナルと、指で行った各操作、または各ステップの画像を保存するだけです。 – Pihhan