绘制大量半透明矩形,wpf和GDI哪个效率高?

可能绘制大约3万个矩形,另外还有一些圆形和不规则图形(自定义顶点)。用GDI+的FillRectangle或者WPF的Shapes.Rectangle哪个效率高?不需要移... 可能绘制大约3万个矩形,另外还有一些圆形和不规则图形(自定义顶点)。
用GDI+的 FillRectangle 或者 WPF的Shapes.Rectangle 哪个效率高?
不需要移动,但经常要更换新的一批图形。
可能绘制大约3万个矩形,另外还有一些圆形和不规则图形(如三角六角之类的)。
用GDI+的 FillRectangle 或者 WPF的Shapes.Rectangle 哪个效率高?
不需要移动,但经常要更换新的一批图形,所以效率很重要。
计划的是:
如果用GDI,大致上重绘BITMAP,
如果用WPF,则可能需要清空List<Shapes> , 然后再重绘。
不知道还有其他更好的解决方案不?
展开
 我来答
草薙在
2013-01-29 · TA获得超过4795个赞
知道大有可为答主
回答量:6187
采纳率:50%
帮助的人:6328万
展开全部
GDI性能肯定没WPF的DirectX快是肯定的。但是用Rectangle其实也不快。

建议你用WPF的DrawingContext,你只需要记录矩形的属性,需要画出来的时候用DrawingContext画一遍就好了
更多追问追答
追问
初步尝试,绘制20000个矩形
1、用GDI,需要140ms,另外。把Bitmap转为BitmapImage需要额外的100ms
2、用Rectangle,约需要500ms,
3、用visual +DrawingContext,需要14000ms,而且刷新明显迟钝。不知道是不是算法有问题??
追答
你不会每次需要的时候都重新用DrawingContext绘制出来吧……需要的时候再画,比如矩形变化的时候。

不清楚你的变化频率如何,如果像游戏那样的变化频率,你每次frame刷新的时候都用DrawingContext,那么底层的缓存就根本没用了。
宇宙之心眼
2013-01-30 · TA获得超过623个赞
知道小有建树答主
回答量:610
采纳率:100%
帮助的人:417万
展开全部
首先你需要考虑用户端的电脑配置情况如何。目前WPF对显卡和内存的要求高。如果你的用户使用中的电脑不怎么样,那还是使用GDI吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zechac
2013-01-29 · TA获得超过161个赞
知道答主
回答量:84
采纳率:0%
帮助的人:56万
展开全部
个人感觉gdi好些,毕竟wpf是托管代码,但wpf的底层直接使用DX,显卡好点我觉得也差不到哪去,不过wpf用起来比gdi方便多了,如果单纯追求高性能,DX吧。
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式