【问题标题】:How to draw thousands of points on a Canvas in WPF? [closed]如何在 WPF 中的 Canvas 上绘制数千个点? [关闭]
【发布时间】:2017-05-03 17:57:50
【问题描述】:

我正在为一款流行游戏开发热图(或者更确切地说是热散点图工具)工具。我对 WPF 很陌生,我需要在 WPF 的 Canvas 中绘制数千个点,并试图找到这样做的最佳方法。

每个点都有几个属性: ARGB 中的 X、Y 坐标和颜色(基于热值的 alpha,单色而不是多色)。

到目前为止,我的想法是有一个方法,它接收坐标和 A、R、G 和 B 值,并向画布的子对象添加一个椭圆。这似乎不是最有创意的选择,所以我想问问是否有人知道更好的方法来做我想做的事情。

【问题讨论】:

  • 取决于您的程序的业务需求,您可以查看WPF 中的光栅图像 支持。绘制大量颜色信息的速度明显更快,但缩放等功能可能需要更多的工作和计算能力。
  • 你反对使用图书馆吗?有大量图表库可以很好地处理这个问题,而无需重新发明轮子。
  • 除了 Tigran 所说的,您可能还想看看 WriteableBitmap 类,可能还想看看 WritableBitmapEx 库。
  • 我确实已经实现了缩放和平移功能,我宁愿保留它。至于图书馆,我绝对可以看一下,只要它对我想要实现的目标有用(简单的蓝点和红点,不同的 alpha)。感谢您的回答!

标签: c# wpf canvas drawing


【解决方案1】:

您可以参考 Charles Petzold 撰写的 article - 他解释了如何使用 The DrawingVisual Solution 来做同样的事情,同时确保高性能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    相关资源
    最近更新 更多