1

私はいくつかのデータ取得コードを書いています。アプリがデータを取得すると、グラフがコンテンツ ペインに描画されます。固定長のスキャンで構成されるデータに対して、現在すべてが完全に機能します。グラフは、painteventargs から取得したグラフィックス オブジェクトに収まるようにスケーリングされます。現在、データを収集するにつれて長くなる「無料スキャン」を実装しています。サイズが大きくなるグラフを painteventargs からグラフィックス オブジェクトに描画したいと考えていますが、グラフがグラフィックス オブジェクトよりも大きくなると、「メモリ不足」例外が生成されます。グラフィックス オブジェクトを大きくしたり、単純に置き換えたりする方法はありますか? スクロール バーを使用してすべてのデータを表示できるようにしたいと考えています。

助けてくれてありがとう!

これがコードのチャンクです(注:メモリ不足エラーが発生する理由を理解しています-ビットマップが大きすぎます。これは、私がやろうとしていることを実行するための1つの試みにすぎません。質問をしています私は今困惑しているので.):

    System.Drawing.Graphics G = e.Graphics;
    e.Graphics.Clear(System.Drawing.Color.White);                
    Bitmap bm = new Bitmap(10000, 1000);
    Graphics h = Graphics.FromImage(bm);
    h.DrawLine(myPens[0], 0, 0, 1000, 10000);
    G.DrawImage(bm,0,0);
4

1 に答える 1

0

私がお勧めするのは、すべてのデータポイントではなく、平均ポイントを計算してグラフにすることです。これは、主要なチャート コントロールによっても行われます。ユーザーから詳細を隠さないようにするには、データの特定の間隔のみを取得するズーム機能を実装する必要があります。ズームインするほど、時間間隔が短くなります。ズームインすればするほど、表示できる詳細が増えます。この戦略がさらに役立つことを願っています。

于 2013-07-25T21:23:59.227 に答える