.map生成错误形状的多边形点列表

时间:2012-10-16 15:57:45

标签: d3.js

实际上这可能更像是一个Javascript问题,但由于我在d3编码时遇到了问题,并且因为它只发生在IE9中,我认为它与d3用户特别相关。

这是我做的: 我开始将鼠标点击添加到数组中:

daLineArray.push({ x: d3.mouse(this)[0], y: d3.mouse(this)[1] });

从这里我生成一个路径,通过将结果数组输入到 d3.svg.line生成器。这适用于所有浏览器。

然后我通过首先映射原始数组将路径转换为多边形 进入较短的一个:

daLineArrayShort = daLineArray.map(function(d) { return d3.values(d) });

然后将其送入d3.area发电机。

除IE9外,所有浏览器都会生成精细多边形, 抱怨点数列表没有正确的表格。

说实话,IE9是对的。

当我在其html表单中检查生成的多边形时,它看起来像这样( 在这种情况下数字是虚构的):

points="10,10,20,20,30,30,40,40,etcetera"

虽然我猜它应该是这样的:

points="10,10 20,20 30,30 40,40 etcetera"

换句话说,坐标对之间有一个逗号,其中有一个空格 是预期的。

之前我注意到了这一点,但我只是意识到这是一个问题 测试了我在IE9中的工作。

所以,我的问题是:如何生成一个正确解析的数组?

(我确实尝试将这些点直接推到daLineArrayShort (.push([d3.event.pageX, d3.event.pageY]),但这并没有产生 正确的点列表 - 逗号不断支持。)

1 个答案:

答案 0 :(得分:0)

Alexander Skarburskis在谷歌d3小组中解决:

http://groups.google.com/group/d3-js/browse_thread/thread/10387708619aab34