【.NET】pictureBox 高速な点の描画方法 – プログラミング – Home

通知
すべてクリア

[解決済] 【.NET】pictureBox 高速な点の描画方法


かまた
 かまた
(@かまた)
ゲスト
結合: 17年前
投稿: 14
Topic starter  

かまたです。
また、お世話になります。

早速ですがピクチャボックス上に大量の点を描画していく
以下の様な関数を作成しました。

// ピクチャボックス描画
void DrawRange(Graphics^ hGraphics, SolidBrush^ hSolidBrush, array<Point>^
XY_Data, USHORT nDataCnt)
{

for(nCnt = 0; nCnt < nDataCnt; nCnt++){

nRangeVal = m_RangeData[nCnt];

// ブラシカラー設定
hSolidBrush->Color = m_256ColorTbl[nRangeVal];

// 測点描画
hGraphics->FillRectangle(
hSolidBrush,
XY_Data[nCnt].X,
XY_Data[nCnt].Y,
1,
1
);
}
}

なのですがnDataCntが約1800程度あるため非常に描画に時間がかかります。
(この関数を2回程度コールして100ms程度)
この描画時間をなんとか短縮できないものかと
(30ms程度まで縮めたい)
試行錯誤していますが、うまくいきません。
FillRectangles()を使用して一度に点を描画すれば速いのかと
考えしましたが、これはブラシのカラーが配列ではないのでNGでした。

識者の方々にお力添えを頂ければ幸いと思います。
宜しくお願いいたします。


引用未解決
トピックタグ
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

似たような物が他の掲示板であったのでリンクしときます。
あちらでも進行中ですが、何かヒントになるような物が出てくるかもしれませんし。
ちなみに私の言いたい事はリンク先にで述べているので良かったら参考にどうぞ。

http://bbs.wankuma.com/index.cgi?mode=al2&namber=15900


返信引用
かまた
 かまた
(@かまた)
ゲスト
結合: 17年前
投稿: 14
Topic starter  

お世話になっております。
かまたです。

PATIOさんアドバイス有り難うございました。

BufferedGraphicsクラスのメモリを確保

確保したメモリに描画

BufferedGraphics::Renderメソッドで描画

でうまくいきました。
非常に助かりました。重ねて御礼申し上げます。

また、お世話になることもあるかもしれませんが、
その時は何卒宜しくお願いたします。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました