如何使用d3和x3dom缩放形状?

时间:2017-02-11 13:16:29

标签: javascript d3.js x3dom

我正在尝试创建一个3D"图表"使用d3数据绑定和x3dom。

数据绑定似乎工作正常,我能够生成看起来正确的HTML,但x3dom没有显示预期的比例(因为形状的大小根本没有缩放)。

代码非常简单。首先,我将数据点绑定到transform s:

var t = scene.selectAll('transform').data(data);
var transform = t.enter();

var shape = transform.append('transform')
        .attr('translation', function (d, i) {
           ...
        }).append('shape');

在为数据点创建的每个transform元素中,我使用此代码创建一个框:

shape.append('box').attr('size', '1, 1, 1');

然后,我希望稍后使用数据缩放这些框,使用转换:

t.transition().attr('scale', function (d) {
        return "1.0 1.0 " + d.size;
    });

仅当我运行完成上述两次的整个函数时才有效,这是setInterval()函数中的第二次!

我是一个新手,所以我肯定在这里遗漏了一些东西,但代码确实产生了我所期望的,并且如果运行两次,无论出于何种原因都能正常工作。那么,为什么它不是第一次工作呢?

注意:我当然可以直接设置尺寸,而不是使用动画稍后通过缩放形状来做到这一点,但这也没有用。看起来形状永远不会使用任何一种技术获得正确的大小,除非我运行它们两次。

0 个答案:

没有答案