我想用D3制作包装布局,但我希望它适应屏幕尺寸(高度和宽度,不一定相同)。
所以,首先,我正在做以下事情:
Jsfiddle 1 在第15行,我设置了
var width = 600, height = 300;
给了我这个结果:
我设置了两倍高度的宽度,(蓝色)边界框得到它,但是(红色)边界圆没有。下一步,我转换边界圆:
Jsfiddle 2 在第32行,我设置
return "translate(" + d.x + "," + d.y + ")scale(2,1)";
现在(红色)边界圆做我想做的事,但是它的孩子仍然在一个完美的圆圈内。我想要创建的是这样的:
如何?如果没有常规D3方法,我愿意使用黑客。
===两个类似的SO问题===
D3 - How to convert circle-pack to ellipse-pack? ==>这个也让孩子们省略了,我不希望这样。我也试过修理孩子,但他们也不能很好地适应椭圆。
Packing different sized circles into rectangle - d3.js ==>虽然这个有一些很好的答案,试图从头开始解决问题,但是关于将圆圈拟合成矩形,而且,答案不是使用D3。