1

我正在尝试使用 World Cloud Generator:http ://www.jasondavies.com/wordcloud/about/ 这是一个与 D3.JS 一起使用的插件。

这是我的代码:

var fill = d3.scale.category20();

function draw(words) {
    d3.select("body").select("#corps div")

    .append("svg")
    .attr("width", 900)
    .attr("height", 900)

    .append("g")
    .attr("transform", "translate(450,450)")

    .selectAll("text")
    .data(words)
    .enter().append("text")
        .attr("text-anchor", "middle")
        .attr("transform", function(d) {
            return "translate(" + [d.x, d.y] + ")rotate(" + d.rotate + ")";
        })
        .style("font-size", function(d) { return d.size + "px"; })
        .style("font-family", "Impact")
        .style("fill", function(d, i) { return fill(i); })


    .text(function(d) { return d.text; });
}

function rotation(){
    return ~~(90 * Math.random() *2);
}

var taille = 90;
function motTaille(mot){
    taille = taille -2;
    return {text: mot, size: taille};
}

var mots = tabMots.map(motTaille);

var layout = d3.layout.cloud()
    .timeInterval(10)
    .size([900, 900])
    .words(words_tab)
    .padding(1)
    .rotate(function() { return ~~(Math.random() * 2) * 90; })
    .font("Impact")
    .fontSize(function(d) { return d.size; })
    .on("end", draw)
    .start();

我已经有一个单词数组:words_tab

我的问题是:在网站上,Jason Davies(作者)对碰撞检测进行了编码。但是当我的数组中有很多单词时,它们会相互重叠......

我错过了什么吗?

4

1 回答 1

0

I found the problem... enough simple !

taille = taille -2;

Sizes can't be negatives, so I corrected the problem :

var taille = 90;
var tailleMini = 15;
function motTaille(mot){
    if(taille < tailleMini)
        return {text: mot, size: tailleMini};
    else{
        taille = taille -2;
        return {text: mot, size: taille};
    }
}
于 2013-07-10T09:00:15.123 回答