绘制大量半透明矩形,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> , 然后再重绘。
不知道还有其他更好的解决方案不? 展开
用GDI+的 FillRectangle 或者 WPF的Shapes.Rectangle 哪个效率高?
不需要移动,但经常要更换新的一批图形。
可能绘制大约3万个矩形,另外还有一些圆形和不规则图形(如三角六角之类的)。
用GDI+的 FillRectangle 或者 WPF的Shapes.Rectangle 哪个效率高?
不需要移动,但经常要更换新的一批图形,所以效率很重要。
计划的是:
如果用GDI,大致上重绘BITMAP,
如果用WPF,则可能需要清空List<Shapes> , 然后再重绘。
不知道还有其他更好的解决方案不? 展开
3个回答
展开全部
GDI性能肯定没WPF的DirectX快是肯定的。但是用Rectangle其实也不快。
建议你用WPF的DrawingContext,你只需要记录矩形的属性,需要画出来的时候用DrawingContext画一遍就好了
建议你用WPF的DrawingContext,你只需要记录矩形的属性,需要画出来的时候用DrawingContext画一遍就好了
更多追问追答
追问
初步尝试,绘制20000个矩形
1、用GDI,需要140ms,另外。把Bitmap转为BitmapImage需要额外的100ms
2、用Rectangle,约需要500ms,
3、用visual +DrawingContext,需要14000ms,而且刷新明显迟钝。不知道是不是算法有问题??
追答
你不会每次需要的时候都重新用DrawingContext绘制出来吧……需要的时候再画,比如矩形变化的时候。
不清楚你的变化频率如何,如果像游戏那样的变化频率,你每次frame刷新的时候都用DrawingContext,那么底层的缓存就根本没用了。
展开全部
首先你需要考虑用户端的电脑配置情况如何。目前WPF对显卡和内存的要求高。如果你的用户使用中的电脑不怎么样,那还是使用GDI吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
个人感觉gdi好些,毕竟wpf是托管代码,但wpf的底层直接使用DX,显卡好点我觉得也差不到哪去,不过wpf用起来比gdi方便多了,如果单纯追求高性能,DX吧。
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询