【问题标题】:Understanding d3 visualization quadtree, continued (2)了解 d3 可视化四叉树,续 (2)
【发布时间】:2013-05-01 23:25:18
【问题描述】:

对于collision detection example 和其他四叉树应用程序,d3 如何更新“tick”计时器回调中使用的四叉树?例如。四叉树是否总是在内部“从头开始”重新计算

force.on("tick", function(e) {
  var q = d3.geom.quadtree(nodes),
      i = 0,
      n = nodes.length;
...

每次存储在“数据”数组中的数据绑定对象的位置发生变化,还是以更有效的方式更新前一个四叉树?

此问题与已回答的a previous question 有关。还有链接

https://github.com/mbostock/d3/blob/master/d3.geom.js#L696

上一个问题的页面现在似乎坏了,不知道如何自己解决这个问题。

很抱歉给您带来了困惑,感谢您的帮助!

丹尼

【问题讨论】:

    标签: d3.js quadtree


    【解决方案1】:

    在您链接到的示例中,四叉树在每个刻度上从头开始重新计算。一旦计算出来,它就不会为下一次迭代保存树。

    【讨论】:

    • 这很有趣,谢谢!我想知道在某些情况下,基于先前状态的更新是否可以显着提高性能?如果是这样,这是否应该成为 d3 github 页面上的“问题”?
    • 一般来说,圆(或一般元素)的绘制和动画会比这种计算更昂贵。但是,是的,很可能在某些情况下它被证明是限制因素。您当然可以为此打开一个问题,但它的优先级较低,除非您有导致问题的特定情况。另一个问题是通过增量可以获得多少——可能不会那么多。
    • 这是有道理的,如果当我获得有关节省的更多详细/定量信息时,我将重新审视这个问题。谢谢
    猜你喜欢
    • 2011-11-17
    • 1970-01-01
    • 2014-06-14
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    相关资源
    最近更新 更多