使用forio轮廓绘制球体上的点

时间:2014-10-28 14:18:57

标签: forio-contour

可以使用forio轮廓绘制球体上的点,以便可以旋转和缩放球体吗?或者我需要在d3.js中执行此操作吗?或者可能是一些Juila套餐?我想将它集成到一个forio epicenter项目中,并使其与底层数据互动。

1 个答案:

答案 0 :(得分:0)

我不完全确定“球体上的绘图点”是什么意思,在任何情况下,“球体图表”都不是Contour基本功能的一部分,但你可以编写一个扩展来完成你的工作想。一个重要的一点是Contour(和一般的d3)本身支持2d形状而不是3d形状,所以你必须实现将球体投影到2d屏幕空间。

如果你能告诉我一些你想要做的事情,也许我可以提供更多帮助。与此同时,这是一个简单的扩展示例,它在2d圆圈上绘制点(数据在这种情况下是角度)

http://jsfiddle.net/tmzsudv5/

Contour.export('round', function (data, layer, options) {
    var r = 100;
    var theta = 2 * Math.PI / 180;
    var centerX = options.chart.width / 2;
    var centerY = options.chart.height / 2;

    layer.selectAll('circle').data(data[0].data).enter()
      .append('circle')
      .attr('class', 'dot')
      .attr('r', 1)
      .attr('cx', function(d, i) { return r * Math.cos(d.y * theta) + centerX; })
      .attr('cy', function(d, i) { return r * Math.sin(d.y * theta) + centerY; });
});

var data = _.range(100).map(function(n) { return Math.floor(Math.random() * 360); });

new Contour({
    el: '.chart',
})
.round(data)
.render();