4

ページに 2 行ある場合

最初の行をアニメーション化して 2 番目の行の位置に到達させるにはどうすればよいですか?

4

2 に答える 2

2

ラインが 2 つの場所の間を移動した距離のパーセンテージとなる「カウンター」変数を追加します。開始位置から開始するため、ゼロに初期化します。タイマーを追加し、タイマーが刻むたびに「カウンター」をインクリメントし、クライアント領域を無効にして、再描画が行われるようにします。「カウンター」が 100 に達し、ターゲットに 100% 到達したら、不要になったのでタイマーを無効にします。

ペイント ルーチンでは、開始位置と終了位置が既にわかっているので、2 つの間の「カウンター」パーセンテージで線を引くだけです。したがって、startX と endX がわかっている場合、ペイントされたバージョンは startX + ((endX - startX) / 100 * カウンター) になります。線の上、左、右、下のそれぞれについてこれを行えば完了です。

于 2012-04-12T05:12:19.020 に答える
1

私が間違っていなければ、まばたきがありますが、これはあなたの問題ですか? このBufferedGraphics の小さな例を使用してみてください

System.Drawing.Graphics g = this.CreateGraphics();
    System.Drawing.BufferedGraphicsContext dc = new BufferedGraphicsContext();
    BufferedGraphics backbuffer = dc.Allocate(g, new Rectangle(new Point(0, 0), g.VisibleClipBounds.Size.ToSize()));
    backbuffer.Graphics.DrawLine(Pens.White, 10, 10, 10, 100);
    backbuffer.Render(g);
于 2012-04-12T07:58:02.527 に答える