我正在尝试创建一个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()
函数中的第二次!
我是一个新手,所以我肯定在这里遗漏了一些东西,但代码确实产生了我所期望的,并且如果运行两次,无论出于何种原因都能正常工作。那么,为什么它不是第一次工作呢?
注意:我当然可以直接设置尺寸,而不是使用动画稍后通过缩放形状来做到这一点,但这也没有用。看起来形状永远不会使用任何一种技术获得正确的大小,除非我运行它们两次。