まだ実用には遠い

アバター
もるも
記事: 54
登録日時: 9年前
連絡を取る:

まだ実用には遠い

投稿記事 by もるも » 6年前

とりあえずタイルエディットとマップエディットにアンドゥリドゥ機能を付けた。
まるまるビットマップをバックアップするのではなくて、
ピクセル単位で描画履歴を登録~そして巻き戻すみたいなことをしてみたかったのだけど、
SetPixelだけではなく、DrawLineとか使っちゃってるので無理だった(;^ω^)

実際試作でいろいろやっているけど、使い物になりません。
そもそもペイントソフトとしてまったく不十分(-_-;)
選択して移動するの付けなきゃ・・・。
他にもアニメーション再生機能は付けたい。


右にずらしたいっ(; ・`д・´)の図↓
スクリーンショット (181).png

アバター
usao
記事: 1889
登録日時: 12年前

Re: まだ実用には遠い

投稿記事 by usao » 6年前

> DrawLineとか

* 描く前と後とで差がある画素群だけを覚えておけば(SetPixelと同じ実装で?)いける
* 面倒だから始点と終点を囲む矩形範囲全体を覚えちゃう(矩形範囲コピペとかのUndoと同じ実装で?)

とか考えちゃいますよね.

アバター
もるも
記事: 54
登録日時: 9年前
連絡を取る:

Re: まだ実用には遠い

投稿記事 by もるも » 6年前

後々に扱う画像のサイズが大きくなっていくと考えると、2つ目が良さげですね。

アバター
いわん
記事: 32
登録日時: 9年前

Re: まだ実用には遠い

投稿記事 by いわん » 6年前

私だったら、直前の操作まで初期状態からやり直しますね。簡単ですし(^^;
時間かかるようなら途中状態を記憶しておくとか。

アバター
usao
記事: 1889
登録日時: 12年前

Re: まだ実用には遠い

投稿記事 by usao » 6年前

なるほど
「やったことを戻す」んじゃなくて,
その直前までやったことを「再現」してやるという考え方か.
「逆の結果になる処理」を考えなくて良い分楽かも.

アバター
もるも
記事: 54
登録日時: 9年前
連絡を取る:

Re: まだ実用には遠い

投稿記事 by もるも » 6年前

(理解できないどうしよう(;^ω^)これが経験値の差・・・)

アバター
usao
記事: 1889
登録日時: 12年前

Re: まだ実用には遠い

投稿記事 by usao » 6年前

いやいやいやw

初期状態から
【線描いて→丸描いて→丸の中を塗りつぶした】
っていう作業をしたときのUndo(最後の塗りつぶしを無かったことにする)ってのは,
もう一回,初期状態から【線描いて→丸描いて】
までの処理を走らせれば達成できるよね,っていう至極単純な話かと.

で,Undoをこの方法で実現するならば,
「線を描く」「丸を描く」「塗りつぶす」等の逆の処理(その操作を取り消す効果を生む処理)ってどうしよう?
って悩む必要がなくなるという.
(線の描画に対するUndo方法の問題自体が消える)

アバター
もるも
記事: 54
登録日時: 9年前
連絡を取る:

Re: まだ実用には遠い

投稿記事 by もるも » 6年前

ああー!やっとわかりました( ´∀` )
巻き戻しを考えなくていいなら、
線も円も座標や大きさとか描画するのに必要な情報さえあれば良いのか。

アバター
usao
記事: 1889
登録日時: 12年前

Re: まだ実用には遠い

投稿記事 by usao » 6年前

こういう「うおぉぉぉ! 言われてみれば,まさにその通りすぎる!」系の話って,
その方法を真っ先に考えつかなかった自分を呪いたくなりますよね.

正直,今回,みごとに
ぐおおお… って状態に陥りましたですw

アバター
もるも
記事: 54
登録日時: 9年前
連絡を取る:

Re: まだ実用には遠い

投稿記事 by もるも » 6年前

自分の方針と違うとイメージできずに(。´・ω・)???となる自分が情けない(笑)

そして実装できるのかという問題がまだあるw

アバター
いわん
記事: 32
登録日時: 9年前

Re: まだ実用には遠い

投稿記事 by いわん » 6年前

自分の思考パターンはまって抜け出せないことはよくありますね。
他人が書いたコードを読むのは柔軟な発想をするよい訓練になりますよ。
一見して意味不明な?コードほど鍛えられます。実はすごい高度な発想のたまものだったり。
まぁ、単に冗長だったり分かりにくいだけだったりすることも多いですがw
私は仕事でさんざん虐め鍛えられました(;^_^A