通知
すべてクリア
固定ページ 2 / 2
前へ
Topic starter
2011年1月18日 10:55 AM
みなさんありがとうございます。
> SetSizeで最大の配列のサイズを設定しておかないと、サイズが分からないので頻繁
> にメモリーを割り当てます。
> ってことだと思います。
これはもちろん理解しているつもりです。
ドラッグによる座標の追加となると事前にサイズは設定できないでしょうし、
マウス移動のたびに追加していたら何度も再割り当てされるでしょうし、
そうなるとなんで配列で管理しているのかなという当初の疑問になったのです。
> 1ストロークがCListで管理してるのは
> 最近の描画ソフトになら大抵実装されてる
> 「1作業ごとのヒストリー」みたいのを想定し
> 「○個前のストロークだけ無かったことにできる」機能を
> 作れるようになってるんじゃないかな
たしかに、ストローク内の座標配列はそれ自体が一つの情報を表現していて
途中の座標のみをいじるようなことは無いのに対して、
各ストロークは一つ一つが独立した情報で、大量のストローク内から
任意のストロークを削除したり順番を入れ替えたりすることもあり得るので、
リストで表現するというのもわかりますね。
> データ構造の設計は大切ですよ。
十分肝に銘じさせていただきます。
今回の件では、どっちを使うべきかちゃんと考えてみようとして
MFCのScribbleサンプルを参照してみたら、
当初の疑問(なぜ座標を配列で?)になったのですが、
> 座標の順次アクセスは描画処理の中なので、
> 追加のコストより順次アクセスの高速性をとったのかも知れません
こういうのはMSDNのCArrayの説明やサンプルソースからは感じ取れず、
経験によるところが多いのでしょうね。
固定ページ 2 / 2
前へ