.Netにおける図形の高速描画方法はありますか?
- 題名: .Netにおける図形の高速描画方法はありますか?
- 著者: .Net初心者
- 日時: 2004/08/20 10:19:22
- ID: 5690
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: .Netにおける図形の高速描画方法はありますか?
- 著者: .Net初心者
- 日時: 2004/08/20 18:45:04
- ID: 5713
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: .Netにおける図形の高速描画方法はありますか?
- 著者: 管理人
- URL: http://dobon.net
- 日時: 2004/08/24 3:32:17
- ID: 5770
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
.Netを最近はじめたばかりの者ですが、ここのページは大変参考にさせていただいております。そこで、どうしても質問したいことがあり、書き込み失礼させていただきます。
.Netの図形の描画速度に関してですが、以下の円の描画などに関して速度を計測したところどうもVB6の時に比べると速度が遅くなっているように思います。おそらく各描画メソッドの引数で必ずペン設定をしなければならず、描画の度にペン設定を繰り返すためなのかなと推測しています。(その理由かRectangleメソッドよりもペン設定が一度のRectanglesメソッドのほうが早い?).Netにおいて図形の高速表示のよいテクニックなどがありましたらご教授ください。
円の描画で計測(半径50の円を1000x1000箇所に描画)
[.Net]@HighSpeedAHighQuality
Dim i, j As Integer
Dim g As Graphics = PictureBox1.CreateGraphics()
g.Clear(Color.White)
For i = 0 To 1000
For j = 0 To 1000
'g.SmoothingMode = Drawing2D.SmoothingMode.HighQuality’・・・A
g.SmoothingMode = Drawing2D.SmoothingMode.HighSpeed’・・・@
g.DrawArc(Pens.Black, i, j, 100, 100, 0, 360)’1001x1001回Pen設定
Next j
Next i
g.Dispose()
[VB6]
BCircleを使用時
Picture1.Cls
For i = 0 To 1000
For j = 0 To 1000
Picture1.Circle (i + 50, j + 50), 50
Next j
Next i
CAPIを使用時
Dim i As Long, j As Long
Picture1.Cls
For i = 0 To 1000
For j = 0 To 1000
Call Arc(Picture1.hdc,i,j,100 + i,100 + j,50 + i,100 + j,50 + i,100 + j)
Next j
Next i
計測結果[.Net]@47秒A84秒 [VB6]B9秒C19秒