代码之家  ›  专栏  ›  技术社区  ›  Andy

点的二维细节层次(LOD)算法

  •  0
  • Andy  · 技术社区  · 11 年前

    我正在创建 scatterplot 在Qt中使用Qwt。 用户可以选择将多个点集附加到散点图中。 然而,性能是个问题。 如果积分总数超过10000,事情就会变慢。

    因此,我正在寻找一种C/C++中的算法实现,或者一种相对简单的2D LOD算法,它计算原始总点集的子集并显示它。

    有什么建议吗?

    1 回复  |  直到 11 年前
        1
  •  1
  •   Uwe    11 年前

    没有回答您的问题,但我建议在Windows上使用Qwt 6.0时,使用Qwt 6.1,或者至少启用QwtPlotCurve::CacheSymbols。

    Qwt 6.1重新引入了几个优化,例如QwtPlotCurve::FilterPoints,以避免绘制重复的点(映射到相同位置的点)。符号的缓存由QwtPlotCurve自动检测,具体取决于运行时环境。

    还要看一下Qwt 6.1中的散点图示例,显示了100000点的曲线。这可能是用Qwt实现散点图的最快方法(在QImage中多线程设置RGB值,而不使用QPainter),但这一方法仅适用于将点显示为点。

    乌韦