新しく発言する EXIT インデックスへ
CLEARについて

  CLEARについて ひろ 2004/01/26 19:10:11 
  ちょっとその書き方(順番)だと説明しにくい... 青木太一 2004/01/27 00:14:05 
   └ありがとうございました。 ひろ 2004/01/27 14:07:13 

  CLEARについて ひろ 2004/01/26 19:10:11  ツリーへ

CLEARについて 返事を書く
ひろ 2004/01/26 19:10:11
私は画面のチラツキをおさえるために
青木太一さんのしょうかいしてくださった
"正六角形の回転プログラム"にのっていた
set draw mode explicit
set draw mode hidden
clear
を使っていますが、
普通の
clear

set draw mode explicit
set draw mode hidden
clear
は、どう違うのでしょうか。
教えてください。

  ちょっとその書き方(順番)だと説明しにくい... 青木太一 2004/01/27 00:14:05  ツリーへ

Re: CLEARについて 返事を書く
青木太一 2004/01/27 00:14:05
ちょっとその書き方(順番)だと説明しにくいので、別のプログラムでチラツキを抑える仕組みを説明させてください。
なお、これは「ダブルバッファリング」というcgアニメに一般的なチラツキ防止技法とほぼおなじものだと思います。

下のプログラムは
・画面を消す
・点を描く
を繰り返します。
画面を消してから点を描き終わるまでの画面が白いところも
(一瞬ですが)目に見えるので、チラツキが発生します。
set window 0,1,0,1
do
clear
plot points:0.5,0.5
loop
END

アニメーションを行うとき、同じ理由でチラツキが発生してしまいます。
どうしたらチラツキを抑えられるでしょうか?
・画面を消す
・点を描く
という動作を、画面に反映させないでコンピュータ内部のビットマップメモリにだけ行い、
新しい絵が描き終わったら、ビットマップメモリを画面に反映させるようにすればいいのです。
そのようにした下のプログラムではちらつきは生じません。
set window 0,1,0,1
do
set draw mode hidden!画面に描画を反映させないようにする
clear

plot points:0.5,0.5!いろいろ絵を描く。ここでは点だけ。
set draw mode explicit!画面に反映させる
loop
END

ご理解いただけたでしょうか?
ヘルプの
目次-グラフィックス-独自の拡張(特殊処理)
にset draw modeについての説明がありますので、そちらもごらんになるといいと思います。

あまりうまく説明できてない気もするので、わからなかったらごめんなさい。
十進BASICではないですが、ダブルバッファリングについては
http://birdynet.com/bakuretuken/sorajava/sora04.html
http://www.ics.kagoshima-u.ac.jp/edu/ProgramingJava/UsingImage/s5.html
などの説明がわかりやすいかと思います。

   └ありがとうございました。 ひろ 2004/01/27 14:07:13  ツリーへ

Re: ちょっとその書き方(順番)だと説明しにくい... 返事を書く
ひろ 2004/01/27 14:07:13
ありがとうございました。

なぜチラツキを抑えることができるのかがよくわかりました。
ダブルバッファリングというんですね。


インデックスへ EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。