比如画10万条线,原来用GDI画图如下,先画到一个图片上,速度比较快。
Bitmap m_bmp;
Graphics g;
Random ran = new Random(System.DateTime.Now.Millisecond);
private void button1_Click(object sender, EventArgs e)
{
long cur = System.DateTime.Now.Ticks;
m_bmp = new Bitmap(400, 300);
g = Graphics.FromImage(m_bmp);
Pen p = new Pen(Color.Red,1);
for (int i = 0; i < 100000;i++ )
{
double x = ran.NextDouble() * 400;
double y = ran.NextDouble() * 300;
g.DrawLine(p, new Point((int)x, (int)y), new Point(100, 100));
}
this.CreateGraphics().DrawImage(m_bmp,0,0);
double time2 = (System.DateTime.Now.Ticks - cur) / (10000d * 1000);
}
现在使用了WPF,尝试了各种办法, 比如各种Geometry,DrawingVisual什么的,但是它们在所画线条个数达到10W的时候,程序已经卡死了。实在是没有思路,求各位大大给个WPF下对应的做法,目标就是随便画10万条线。小弟谢谢大家了!
------解决思路----------------------
既然你只要画在位图上就感觉很知足,为什么在wpf中也还是copy这段代码呢?干么要重写呢?
------解决思路----------------------
WPF里path是矢量图,占用资源比较多吧。