■51839 / inTopicNo.4) |
Re[3]: 印刷プレビュー(PrintPreviewDialog)で表示 |
□投稿者/ じいおい (4回)-(2010/07/22(Thu) 10:58:32)
|
魔界の仮面弁士 さん、早速の返答ありがとうございます。
> これって、実際のコードでは無いですよね。
> 変数宣言時の [New] が抜けて、配列宣言になってしまっていたり、
> Private もスペルミスしていて、このままでは実行できません。
もうしわけありません。手入力して確認が甘かったです。
> さらに言えば、変数 c が 8124 以下であればプレビューされましたが、
> c = 8125 以上になると、DrawLines 以降の描画処理が行われませんでした。
> http://objectmix.com/dotnet/101440-drawlines-drawpolygon-bug.html
>
>
> (対策案 1) DrawLines を DrawLine に切り替えて対応する。
>
> For i = 1 To c
> g.DrawLine(Pens.Aqua, p(i - 1), p(i))
> Next
>
>
> (対策案 2) 一度に描画する個数を減らして対応する。
>
> Dim p1 = p.Where(Function(d, i) i < 4000)
> g.DrawLines(Pens.Aqua, p1.ToArray())
>
> Dim p2 = p.Where(Function(d, i) 4000 <= i AndAlso i < 8000)
> g.DrawLines(Pens.Aqua, p2.ToArray())
>
> Dim p3 = p.Where(Function(d, i) 8000 <= i)
> g.DrawLines(Pens.Aqua, p3.ToArray())
チャートを描画するソフトでして、点数が多いときには何万点にもなるので、DrawLineですと描画に、より時間が掛かってしまいます。
代案2の書き方は、初めて見ました。直感的に分かり易いですね。勉強になります。もしかしてLINQ?
しかしこの現象は、プレビューの仕様なのでしょうか?どうしようもないのでしょう?
|
|