タイトル | : 矩形領域の移動 |
記事No | : 3562 |
投稿日 | : 2006/04/29(Sat) 06:48 |
投稿者 | : うらしまん |
[OSのVer]:Windows XP [VBのVer]:VB.NET 2005
すいません。初心者です。
フォーム上でなんらかの画像を持った四角の領域を動かしたいのですが、 1回に付き、1dotだけ動かす制限で、出来るだけはやく動かしたいと考えています。 これまで3通りを試しましたがいずれも遅くて困っています
@四角の領域をPictureBoxで表示してPictureBoxをTimerコントロールイベントで動かす。
PictureBox1.Left = PictureBox1.Left + 1 をただひたすら繰り返す。
ACopyFromScreenを使ってTimerコントロールイベントでコピーする。
g.CopyFromScreen(New Point(x1, y1), New Point _ (x2, y2), New Size(w, h))
B一旦、クリップボードに保存して、Timerコントロールイベントで塗りつぶす。
Using G2 As Graphics = Graphics.FromImage(Bmp) g.CopyFromScreen(New Point(x1, y1), New Point _ (x2, y2), New Size(w, h)) Clipboard.SetImage(Bmp) end using
===================================================
Dim bmp0 As Bitmap bmp0 = Clipboard.GetImage Dim myTextureBrush As New TextureBrush(bmp0) g.FillRectangle(myTextureBrush, x2, y2, w, h)
で、256×256ドットの領域を動かしたときにPentium4 2.6GHzのPCで 1秒あたりの移動は@51dot/s、A20dot/s、B24dot/sとなり、 画面のリフレッシュレートでフレーム1dotを超えられません。 (いずれもビルトしてから実行しています)
もっと早く動かす手段が有りましたら教えていただけませんでしょうか。 よろしくお願いします。
|